Skip to content
{ }JSON Formatter

JSON to Markdown Table

Turn a JSON array of objects into a GitHub-flavored Markdown table — ready to paste into a README, issue, PR or wiki. Pipes and newlines are escaped.

Input
Output
Paste input and press To Markdown.

Data into docs

Dropping a dataset into a README, GitHub issue or wiki means a Markdown table — and writing one by hand, aligning pipes, is tedious. Paste a JSON array of objects and get the table: the union of keys becomes the header row, each object becomes a table row, and the alignment rule line is added for you.

[{ "id": 1, "name": "Ada" }, { "id": 2, "name": "Alan" }]

| id | name |
| :--- | :--- |
| 1 | Ada |
| 2 | Alan |

The gotchas it handles

Two characters silently break Markdown tables: a literal | inside a value (it looks like a column separator) and a newline (it ends the row). Both are escaped here — | becomes \| and newlines become <br> so multi-line values stay in their cell. Nested objects and arrays are written as compact JSON, keeping the table flat and legible.

Rendered vs source

The output is Markdown source — paste it where Markdown is rendered (GitHub, GitLab, most wikis and static-site generators) and it becomes a real table. Want a live, sortable view instead? The JSON to Table viewer renders the same data as an interactive HTML table you can sort and copy as CSV.

Frequently asked questions

Which Markdown flavor is produced?

GitHub-flavored Markdown (GFM) table syntax, which GitHub, GitLab, most wikis and static-site generators render. The alignment line uses left alignment (:---); change the colons to :---: or ---: for center or right if you prefer.

What happens to pipe characters in my data?

They are escaped as \| so they do not break the column layout. The sample deliberately includes "core | workbench" to show it staying inside one cell.

How are multi-line values handled?

A newline inside a value would end the table row, so newlines are replaced with <br>, which renders as a line break inside the cell on GitHub and most renderers.

What about nested objects and arrays?

They are written as compact JSON in the cell, keeping the table flat. Flatten the data first (JSON Flatten) if you want nested fields as their own columns.