Convert a JSON array of objects into a Markdown table — one row per element, columns from the union of keys, pipes and line breaks escaped. A single object becomes a key/value table.
Show calculation steps
Processed privately in your browser — nothing you paste is uploaded, logged or stored.
Rows and columns from JSON
READMEs, wikis and pull-request descriptions want tables, and your data is in JSON. This converter maps an array of objects to a Markdown table — one row per element, columns taken from the union of all keys in first-seen order — and escapes the two things that routinely break hand-made tables: pipe characters (\|) and line breaks (<br>). A single object becomes a two-column Key/Value table instead.
Worked example
Input:
[
{ "name": "Asha", "role": "Developer", "remote": true },
{ "name": "Ravi", "role": "Designer", "remote": false, "city": "Delhi" }
]Output:
| name | role | remote | city |
| --- | --- | --- | --- |
| Asha | Developer | true | |
| Ravi | Designer | false | Delhi |Note the union: city appears only in the second object, so the first row simply has an empty cell — nothing is dropped or invented.
When to use it
- Documenting API fields or config options in a GitHub README.
- Pasting query results into an issue, wiki page or pull-request description.
- Publishing small datasets in docs where an HTML table would be overkill.
Limitations to know
- Markdown tables have no rowspan, colspan or nested tables — nested objects are inlined as compact JSON in their cell. For real columns from nested data, run the JSON Flattener first.
- Wide tables read poorly on GitHub; past roughly 8 columns the tool warns you, and trimming keys beforehand is usually the better fix.
- Column order follows first appearance in your data. Reorder keys in the first object to control it.
Common errors and fixes
- “The array is empty” — there are no rows to build; check that you pasted the right fragment of the response.
- “A bare scalar cannot become a table” — the input was a lone string or number; wrap the data as an array of objects or a single object.
- Table renders broken in my wiki — some renderers need a blank line before the table; paste the output with one empty line above it.
How to use the JSON to Markdown Table Converter
- Paste a JSON array of objects — one object per intended table row.
- Pick the column alignment and whether headers are bold.
- Click "Build table".
- Copy the Markdown into your README, wiki or docs — or download it as a .md file.
Frequently asked questions
What JSON shapes can become a table?
An array of objects becomes rows with columns from the keys; a single object becomes a two-column Key/Value table; an array of plain values becomes a one-column table. Bare scalars have no tabular structure and are rejected with a clear message.
What if objects have different keys?
The columns are the union of all keys in first-seen order, and rows simply leave missing cells blank — no data is dropped and no keys are invented.
Will pipes or line breaks in my data break the table?
No. Pipe characters are escaped as \| and line breaks become <br>, so the Markdown grid stays intact in GitHub, GitLab and most renderers.
How are nested objects handled?
They are inlined as compact JSON inside the cell. If you want real columns like user.name instead, run the data through the JSON Flattener first, then build the table.