How to use the JSON to Markdown Table
- Paste a JSON array of objects — or an object that contains one (e.g.
{"data": [...]}). - Columns are collected from all objects; nested objects become dot-notation columns.
- Choose alignment and padding, then copy the Markdown.
Why convert JSON to a Markdown table?
API responses, database exports and LLM outputs usually arrive as JSON arrays. For documentation, README files, pull requests, issue comments or Notion pages, a Markdown table is far easier to read and review. Writing one by hand — pipes, separator rows, alignment colons — is tedious and error-prone, especially when objects don’t all have the same keys.
How the conversion works
- Columns are the union of keys across all objects, in first-seen order; missing values become empty cells.
- Nested objects are flattened (
address.city); arrays and deeper structures are shown as compact JSON. - Alignment: in Auto mode, numeric columns are right-aligned with
---:so figures line up. - Escaping: pipe characters are escaped as
\|and line breaks become<br>, so cells never break the table. - Padding makes the raw Markdown itself readable in code review.
Markdown table syntax
| Tool | Users |
| ------------- | ----: |
| JSON Formatter | 1520 |
GitHub, GitLab, Notion, Obsidian and most static site generators render this as an HTML table. Need the data elsewhere? Try JSON to CSV for spreadsheets or the JSON Formatter to inspect it first.
Tools that pair well with the JSON to Markdown Table
- Markdown Task List Converter — Paste a plain list, bullet points or half-finished checklist and get clean - [ ] task lists for GitHub, GitLab or Notion — plus HTML, Jira and CSV versions.
- CSV to JSON — Paste CSV or TSV and get a JSON array of objects.
- JSON to YAML — Paste JSON and get clean YAML for Kubernetes manifests, Docker Compose, GitHub Actions or any config file.
- YAML to JSON — Paste YAML — a Compose file, Kubernetes manifest or CI config — and get formatted JSON.
Frequently asked questions
What JSON shapes are supported?
{"items": [...]}) is unwrapped automatically, and an array of plain values becomes a single “value” column.How are nested objects handled?
user.name. Turn it off to show nested objects as JSON in one cell.