JSON to Markdown table converter
The result appears here.
Convert
Your document never leaves the browser.
JSON to a GitHub Markdown table that renders what the data says — in your browser.
Paste JSON and get a pipe table for a README, an issue or a pull request — one that renders exactly the data, not something that looks like it.
The output is a GitHub Flavored Markdown pipe table of the same rows and columns the Table view shows. Markdown treats many characters as formatting, so every one that would change the rendering is escaped with a backslash: \ ` * _ [ ] < > | ~. Unescaped, *id* would render as emphasis and <b> as HTML.
The JSON
[
{ "field": "*id*", "note": "<b> is HTML" },
{ "field": "a|b", "note": "a pipe" }
]The Markdown table it gives, at the default settings
| # | field | note |
| ---: | ------ | ------------- |
| 0 | \*id\* | \<b\> is HTML |
| 1 | a\|b | a pipe |Rows with a null, a nested array and a line break
[
{ "id": 1, "note": null, "tags": ["a"] },
{ "id": 22, "text": "two\nlines" }
]The table it gives, and the notices under it
| # | id | note | tags | text |
| ---: | ---: | ------ | ------- | ------------ |
| 0 | 1 | `null` | `["a"]` | |
| 1 | 22 | | | two<br>lines |Cell
Numbers keep their exact digits, and a column where every present cell is a number is right-aligned.
Cell
A string with line breaks is joined with <br>, because a table row cannot contain a line break; the result counts those cells.
Cell
null is written as `null` in a code span, and a missing key as an empty cell — Markdown can tell them apart, so it does.
Cell
A nested object or array is compact JSON in a code span, fenced past any backticks it contains, and counted.
Cell
An empty header becomes `(empty)`. The raw text is padded so the columns line up, up to 40 characters a column.
Row labels adds the # or key column. A Markdown table cannot exist without its header line, so Header row is always on here. The download is a .md file; ⇄ is off, because a Markdown table is not read back.
The table is the one the Table view opens on: an array or object at the top, stepping into a single wrapping key, with up to 50 columns and a notice when more were left out. The same export is on the Table view’s Export card in the editor, and the two share their settings.
The first example’s JSON, with Row labels off
| field | note |
| ------ | ------------- |
| \*id\* | \<b\> is HTML |
| a\|b | a pipe |The conversion runs in your browser, in the same engine the editor uses. The document is never uploaded, never logged and never leaves your machine — there is no server to send it to. Once the page has loaded it keeps working with the connection off.
Columns are padded by counting characters, and wide characters take two columns in a monospace font. The rendered table is unaffected.
No. Every | in a cell is escaped, including inside code spans, as GitHub requires.
Yes. Press Copy and paste it into any Markdown field.