What it does
API responses, exports and configuration often come as JSON, but a table is much easier to read in a README, a pull request, a wiki page or a chat message. This tool turns a JSON array of objects into a GitHub Flavored Markdown table that renders on GitHub, GitLab, Notion, Obsidian and most documentation sites.
Each object becomes a row and each key becomes a column. Nested objects are flattened into dotted column names, pipes and line breaks in values are escaped, and the columns are padded so the raw Markdown lines up too.
How to use it
- Paste JSON, upload a
.jsonfile, or click Sample. - Choose the Alignment: default, left, center, right, or Numbers right to right-align columns that contain only numbers.
- Keep Flatten nested objects on to spread nested fields over columns, or turn it off to show them as JSON.
- Switch off Align columns if you prefer compact rows without padding.
- Copy the table or download it as a
.mdfile.
If the JSON is invalid, the error shows the line and column so you can fix it quickly.
Example
This JSON:
[
{ "name": "ripgrep", "stars": 48000, "repo": { "owner": "BurntSushi" } },
{ "name": "fd", "stars": 34000, "repo": { "owner": "sharkdp" }, "tags": ["find"] }
]
becomes this Markdown table:
| name | stars | repo.owner | tags |
| ------- | ----- | ---------- | -------- |
| ripgrep | 48000 | BurntSushi | |
| fd | 34000 | sharkdp | ["find"] |
The nested repo object becomes a repo.owner column, the tags array is written as JSON, and the first row gets an empty cell because it has no tags.
Tips
- Values are written as text: numbers and booleans appear as they are, and
nullbecomes an empty cell. - Very wide tables are hard to read; remove fields you do not need before converting.
- Inline Markdown in string values, such as
**bold**or links, is kept and rendered by most viewers. - For CSV data, or to produce an HTML table instead, use the related tools below.
FAQ
› What JSON shapes are supported?
An array of objects becomes one row per object, with a column for every key that appears in any object. A single object becomes a two-column Key / Value table. An array of arrays becomes rows with numbered columns, and an array of plain values becomes a single Value column.
› How are nested objects handled?
With Flatten nested objects on, nested fields become dotted columns such as address.city. Arrays are written as compact JSON in the cell. Turn flattening off to keep each nested object as JSON in a single cell.
› What if objects have different keys?
The header is the union of all keys in the order they first appear. A cell is left empty when an object does not have that key, and null values are also shown as empty cells.
› Is my JSON uploaded?
No. Parsing and conversion run entirely in your browser, so API responses and private data never leave your device.