Skip to content
100% local

JSON to Markdown table

Turn an array of JSON objects into a Markdown table, or convert one back to JSON.

Input
Output

JSON to Markdown table

Paste a JSON array of objects and this tool builds a Markdown table from it: each object's keys become the header row and each object becomes one data row. Use it to document an API response, turn a config export into a readable table for a README, or drop a quick data summary into a GitHub issue or wiki page.

Nested objects can be flattened into dot-notation columns (`user.name`, `user.age`) instead of showing up as raw JSON in a cell, and the same toggle reconstructs the nested shape when converting a table back to JSON. Column alignment can be set to left, center, right, or "numbers right", which right-aligns any column where every value is numeric and leaves the rest left-aligned. The columns field picks exactly which keys to include and in what order, so a wide object doesn't have to become a wide table. Padding column widths with spaces lines up the raw Markdown source in a monospace editor, and pipe characters inside values are escaped by default so a stray `|` never breaks the table structure.

Switching the direction to "Markdown table → JSON" reverses the process: paste a table and get back a JSON array, with the same flatten, column-selection and pipe-escaping options applied in reverse — useful for pulling structured data out of a table pasted into a Markdown document or GitHub comment. CRLF and LF line endings are treated identically, and the live tally under the output reports rows and columns as you type.

Everything runs locally in your browser — nothing you paste is uploaded anywhere, so it's safe to convert data from private projects. Copy the result, download it as a .txt file, or send the output back into the input to chain another conversion.

FAQ

What happens to nested objects?
By default a nested object or array is shown as raw JSON inside the cell. Turn on "Flatten nested objects" to split them into dot-notation columns like user.name and user.age instead.
How does "Numbers right" alignment decide which columns to right-align?
A column is right-aligned only when every value in it is numeric. Any column with even one non-numeric value is left-aligned, which matches how mixed-content tables are usually read.
Can I convert a Markdown table back into JSON?
Yes. Switch the direction option to "Markdown table → JSON" and paste a table — the header row becomes the object keys and each following row becomes one object.
What if my objects have different keys?
The table includes every key seen across all objects, in the order it first appears, and leaves a cell blank for any object missing that key.
Is my JSON or table data uploaded anywhere?
No. The conversion runs entirely in your browser using JavaScript — your data is never sent to a server.