JSON to Markdown table converter - free online tool
What is a JSON to Markdown table converter?
A JSON to Markdown table converter turns JSON into a GitHub Flavored Markdown (GFM) table. This is useful when your source data lives in JSON, but your docs, README, or issue tracker reads better as a table.
The converter runs locally in your browser. You can paste JSON that includes internal names or test data without sending it to a third-party API.
How to use the JSON to Markdown table converter
- Paste JSON: Paste an array of objects, a single object, or an array of values.
- Set table options: Choose max rows, alignment, and whether to sort columns.
- Copy the table: Paste the Markdown table into GitHub, GitLab, or your docs tool.
What JSON shapes work best?
JSON can represent many structures, but tables prefer consistent rows and columns.
- Best: an array of objects, where each object uses the same keys.
- Also works: a single object; keys become the header row, values become one table row.
- Fallback: arrays of values or primitives; exported as a one-column table.
How values appear in the table
Markdown tables are text. The converter turns values into strings so the output stays readable:
trueandfalsebecometrueandfalse.nullbecomesnull.- Missing keys become empty cells.
- Objects and arrays become compact JSON strings inside the cell. This keeps rows consistent.
If you need a refresher on what valid JSON looks like, see https://www.json.org/json-en.html.
Use case 1: Document API fields
Turn an API sample payload into a table of field names and values for docs.
Use case 2: Share config options
Convert a JSON object of config keys into a table for a wiki page.
Use case 3: Build a changelog table
If your release notes tool exports JSON, convert it into a Markdown table for a GitHub release description.
Examples
Basic example (array of objects)
Input (JSON):
[
{ "name": "Ada", "role": "Engineer", "active": true },
{ "name": "Jordan", "role": "PM", "active": false }
]
Output (Markdown):
| name | role | active |
| :--- | :--- | :--- |
| Ada | Engineer | true |
| Jordan | PM | false |
Advanced example (nested values)
Nested objects and arrays do not fit cleanly into table cells. The converter turns nested values into JSON strings so the table stays valid.
Input (JSON):
[
{
"service": "auth",
"owners": ["dina", "evan"],
"limits": { "rpm": 600, "burst": 60 }
}
]
Output (Markdown):
| service | owners | limits |
| :--- | :--- | :--- |
| auth | ["dina","evan"] | {"rpm":600,"burst":60} |
Common errors
Invalid JSON
If the input is not valid JSON, conversion fails. Fix: format and validate it with the JSON formatter, then convert again.
The table is missing columns
If some objects do not include a key, that cell becomes empty. Fix: make keys consistent across objects, or turn on column sorting so the headers are easier to scan.
The table is too large
Large arrays can produce huge Markdown output. Fix: lower the Max rows option for docs-friendly output, then include a link to the full dataset elsewhere.
Tips and proven approaches
- Format first, then convert: Use the JSON formatter so you can spot missing braces or quotes before table generation.
- Sort headers for docs: Sorting columns A-Z keeps tables stable when keys appear in different orders.
- Round trip when needed: If you need the JSON back later, keep the Markdown table and convert it with Markdown table to JSON. If you need CSV for spreadsheets, convert the table with Markdown table to CSV.
Related tools
- Clean and validate JSON using the JSON formatter.
- Convert a Markdown table back to JSON with Markdown table to JSON.
- Build and edit tables visually with the Markdown table creator.
Privacy and security
JSON parsing and table creation run locally in your browser. Textavia does not upload or store the JSON you paste.