Paste a JSON array of objects and get a clean GitHub Flavored Markdown table for READMEs, docs, issues and wikis. Pick and reorder columns, flatten nested objects, set alignment and check the rendered preview.
Last updated:
Columns (untick to hide, arrows to reorder)
Converted locally in your browser; your JSON is never uploaded. Output follows the GitHub Flavored Markdown table syntax.
Advertisement
Advertisement
How to use the JSON to Markdown Table
Paste your JSON, usually an array of objects such as an API response, or open a .json file. A sample is loaded to start.
Pick the columns: untick the ones you do not need and use the arrows to change their order.
Choose how nested data appears: flattened dot columns, compact JSON, or JSON wrapped in code.
Set alignment and style: column alignment, number alignment, null text, Title Case headers, row numbers and padding.
Check the Preview tab, then copy the Markdown or download it as a .md file and paste it into your README or issue.
becomes this table, with the nested address flattened into its own column and the number column right-aligned:
| name | role | salary | address.city |
| ---- | ---------- | ------: | ------------ |
| Ada | Engineer | 120000 | London |
| Alan | Researcher | 98500.5 | Manchester |
Markdown table syntax cheat sheet
Part
Syntax
Notes
Header row
| Name | Age |
Required. Every table needs exactly one header row.
Separator row
| --- | --- |
At least three dashes per column in many renderers; colons set alignment.
Left align
:---
Same as the default on most sites.
Center
:---:
Good for short status values such as ✓ or Yes/No.
Right align
---:
Best for numbers, so digits line up.
Pipe inside a cell
\|
An unescaped | starts a new cell.
Line break in a cell
<br>
Cells cannot span several source lines.
Empty cell
| |
Leave the space between pipes empty.
Tips for readable tables
Hide what readers do not need. API responses often include IDs, timestamps and URLs; untick those columns to keep the table narrow enough for a README.
Padding is optional. Renderers ignore the extra spaces, but padded source is much easier to read and review in a pull request diff. Turn padding off for the smallest output.
Very long values make tables scroll sideways on GitHub. Consider flattening only the fields you need or shortening text before converting.
An array of objects works best: each object becomes a row and each key becomes a column. The tool also accepts an object whose values are objects (each becomes a row with a key column), an array of arrays (the first row becomes the header when it contains only strings), an array of plain values (one value column) and a single object (one row).
What happens when objects have different keys?
Columns are the union of all keys in the order they first appear. A row that does not have a key gets an empty cell, or the text you choose for null and missing values, such as null, a dash or N/A.
How are nested objects and arrays shown?
By default nested objects are flattened into dot-notation columns, so address.city becomes its own column, and arrays of plain values are joined with commas. You can instead keep nested values as compact JSON, optionally wrapped in backticks so Markdown shows them as code.
How do I align columns in a Markdown table?
Alignment is set in the separator row under the header: :--- aligns left, :---: centers and ---: aligns right. Plain --- uses the renderer's default, which is left on GitHub. With 'Right-align number columns' on, columns that contain only numbers are right-aligned automatically so digits line up.
What if a value contains a pipe character or a line break?
A raw | would end the cell early, so the tool escapes it as \|. Markdown table cells must stay on one line, so line breaks inside values are replaced with <br>, which GitHub, GitLab and most renderers show as a line break.
Where can I use the generated table?
The output follows the GitHub Flavored Markdown table syntax, supported by GitHub and GitLab READMEs, issues and wikis, Bitbucket, Obsidian, Docusaurus, MkDocs and most static site generators.
Is my JSON uploaded?
No. The conversion runs entirely in JavaScript in this page, so your data never leaves your device.
Are all the tools on FreeToolCabin tested for quality and accuracy?
Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.