JSON to Markdown Table
Turn a JSON array into a Markdown table for a README, a pull-request description, or a ticket. Pipes inside values are escaped, newlines become <br>, and optional cell padding keeps the raw Markdown readable in a diff.
How to convert JSON to a Markdown table
- Paste your JSON array into the input pane.
- Pick Column alignment — this writes the
:---,:---:or---:markers in the separator row. - Leave Pad cells on if a human will read the raw Markdown; turn it off for the most compact output.
- Set Max rows to cap long tables — the status bar tells you how many rows were dropped.
- Copy the table and paste it into your README, issue, or docs page.
What gets escaped
- Pipes inside a value become
\|, otherwise they would split the cell. - Newlines become
<br>. Markdown tables are strictly one row per line, so a literal newline would end the row. - Objects and arrays are serialised to compact JSON and placed in one cell.
Markdown has no escape for a leading or trailing space, so cells are trimmed by the renderer. If exact whitespace matters, use TSV or CSV instead.
Privacy
Nothing is uploaded. The conversion runs in this tab using your own browser's JavaScript engine — no server sees your data, and the page keeps working with the network disconnected.
FAQ
Which Markdown flavours support this?
Pipe tables are a GitHub-Flavoured Markdown extension, also supported by GitLab, Bitbucket, Obsidian, MkDocs, Docusaurus and most static-site generators. They are not part of the original CommonMark spec, so a strict CommonMark renderer will show the raw pipes.
My table is enormous — any advice?
Set Max rows to something readable and link to the full data. A 500-row Markdown table is unreadable in both source and rendered form; a table is a summary, not a database.
Can I get HTML instead?
Yes — JSON → HTML table. Markdown renderers accept inline HTML too, so that output works in a README when you need colspan or styling.