json

FormatValidateConvert

JSON to Markdown table converter

Result· read-only

—Markdown table

The result appears here.

Convert

JSON to Markdown table converter.

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.

10

characters escaped, so it renders the data

40

characters of padding a column, at most

0

bytes leave your machine

A table that renders the data

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.

1

The JSON

[
  { "field": "*id*", "note": "<b> is HTML" },
  { "field": "a|b", "note": "a pipe" }
]
2

The Markdown table it gives, at the default settings

|    # | field  | note          |
| ---: | ------ | ------------- |
|    0 | \*id\* | \<b\> is HTML |
|    1 | a\|b   | a pipe        |

Cells

1

Rows with a null, a nested array and a line break

[
  { "id": 1, "note": null, "tags": ["a"] },
  { "id": 22, "text": "two\nlines" }
]
2

The table it gives, and the notices under it

|    # |   id | note   | tags    | text         |
| ---: | ---: | ------ | ------- | ------------ |
|    0 |    1 | `null` | `["a"]` |              |
|    1 |   22 |        |         | two<br>lines |
  • 1 cell had line breaks, written as <br>.
  • 1 nested value written as JSON text.

Cell

Numbers

Numbers keep their exact digits, and a column where every present cell is a number is right-aligned.

Cell

Line breaks

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 and missing

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

Nested values

A nested object or array is compact JSON in a code span, fenced past any backticks it contains, and counted.

Cell

Headers and padding

An empty header becomes `(empty)`. The raw text is padded so the columns line up, up to 40 characters a column.

Options

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        |

Private by construction

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.

FAQ

Frequently asked questions

Didn’t find your answer?Write to us on the contact page →
Why do emoji and CJK characters misalign in the raw text?

Columns are padded by counting characters, and wide characters take two columns in a monospace font. The rendered table is unaffected.

Will a pipe inside a value break the table?

No. Every | in a cell is escaped, including inside code spans, as GitHub requires.

Can I paste the result straight into GitHub?

Yes. Press Copy and paste it into any Markdown field.

Keyboard shortcuts

Send feedback

Questions, bug reports and feature requests are all welcome. A bug report is easiest to act on with the shape of the document that caused it — never send anything confidential.

Email us

Contact page, in a new tab, so this page stays as it is.

Settings

Indent

The result is written with it — YAML and XML at 2 spaces when it is Tab.

Code text size
14 px

Both panes.

Wrap long lines

Load from a URL

Your browser fetches it directly — the request goes to that site, never to us.