This JSON to Markdown converter turns an array of objects into a GitHub Flavored Markdown table, one row per object and one column per key. Paste JSON or open a file and copy the table.
Last updated:
How it works
Paste or open JSON
Paste a JSON array, JSON Lines or an API response, open a .json file, load one from a URL or try the sample.
Pick the records
The largest array of objects is found automatically; type a path such as data.items to use another one, and choose how arrays inside records are written.
Copy the Markdown
Choose columns and alignment, then copy the table or download it as a .md file.
Features
Nested objects flattened
An object inside a record becomes dotted columns such as rateLimit.perMinute, so every value gets its own column.
Arrays your way
Arrays inside records become numbered columns (tags[0], tags[1]), one JSON text, or a list joined with semicolons.
Keys in their order
Columns follow the order of the keys in the JSON; keys that only some objects have are added as they appear, and missing values stay empty.
Exact values
Long IDs are not rounded, true and false stay as written, and null becomes an empty cell. Numeric columns are right-aligned.
Error positions
Invalid JSON is reported with its line and column, and Go to error jumps to the problem in the editor.
Limits & privacy
JSON files can be up to 20 MB and tables are limited to 50,000 rows. Files above 5 MB are converted from the file without loading them into the editor.
A Markdown table is flat, so deeply nested data produces many columns. Choose One column with JSON or values joined with ; for arrays to keep the table narrow, or hide columns you do not need. Documenting an API is the typical case: paste a sample response and get a field table for the README in seconds.
The JSON is parsed in your browser and never uploaded; see the privacy page.
FAQ
How do I convert JSON to a Markdown table?
Paste the JSON array of objects. Each object becomes a row and each key a column; copy the Markdown when it looks right.
How are nested objects shown?
Their keys are joined with dots: {"user": {"name": "Ann"}} gives a column user.name with Ann in it.
My JSON is an object, not an array. What now?
The converter looks for the largest array of objects inside it. Type another path in Array to convert, or $ to use the whole object as one row.
Does it handle JSON Lines?
Yes. One JSON value per line is detected automatically, or you can force JSON Lines in the options.
What happens to a pipe in a JSON string?
It is escaped as \|, so it stays inside the cell instead of starting a new column.
Can I turn the table back into JSON?
Yes, with the Markdown → JSON button, which opens the reverse converter.