Free tool

JSON to Markdown

Paste JSON below. Arrays of flat objects come back as tables, everything else as a nested outline. Conversion happens in your browser.

FreeNo sign upNo card
Runs in your browser. Nothing is uploaded.

The short version

A JSON to Markdown converter renders structured data as readable text. An array of flat objects with consistent keys becomes a Markdown table; nested objects and mixed arrays become indented bullet lists with keys in bold.

Table or outline: how the shape decides

There is no single right rendering for JSON, so the useful thing is to pick based on the data's shape.

An array of objects that all have the same flat keys is a table. That is what a table is for, and it is far more readable than the equivalent nested list. API responses and database exports usually land here.

Anything else becomes an indented outline. Nested objects, mixed-type arrays, and deeply structured configuration do not fit rows and columns, and forcing them into a table produces something worse than the raw JSON.

We only use a table when every value in the array is a string, number, boolean or null, and there are twelve keys or fewer. Beyond that a table becomes unreadable and the outline wins.

What this is useful for

Documentation, mostly. Pasting an API response into a wiki or README is far more useful as a table than as a fenced code block nobody reads.

Reviewing unfamiliar data is the other case. A large JSON payload is genuinely hard to scan, and an outline with bold keys makes the structure visible in a way that raw braces do not.

It is also a quick way to check your own assumptions about a payload. If the outline surprises you, your mental model of the data was wrong, and that is worth knowing before you write code against it.

Limits worth knowing

This is a one-way conversion. Markdown carries no type information, so a number and a string containing digits look identical in the output, and you cannot convert back.

Very deeply nested data produces very deeply indented output, which stops being readable somewhere around five or six levels. At that depth the raw JSON with syntax highlighting is genuinely easier to read.

Null becomes an italic marker rather than an empty cell, so the difference between absent and null stays visible. Empty strings do not, which is a real ambiguity in the output.

If the paste fails

Invalid JSON produces a parse error with the position, and the causes are almost always one of four things.

Trailing commas, which JavaScript object literals allow and JSON does not. Single quotes instead of double quotes, same reason. Unquoted keys, which are valid in JavaScript and not in JSON. And comments, which JSON has no support for at all.

If you copied from a config file or a code editor, one of those four is very likely the problem.

Questions about this tool

When does it produce a table instead of a list?+

When the JSON is an array of objects whose values are all scalars, with twelve keys or fewer. Anything more complex becomes an indented outline, because a table would be less readable than the raw data.

Is my JSON sent to a server?+

No. Conversion happens in your browser. We record that a conversion occurred, never the content.

Can I convert the Markdown back to JSON?+

No. Markdown carries no type information, so a number and a string of digits are indistinguishable in the output. The conversion is one-way.

Why does my JSON fail to parse?+

Usually trailing commas, single quotes instead of double, unquoted keys, or comments. All four are valid JavaScript and none are valid JSON, so copying from a config file or editor is the common cause.

Ready to put an agent on your own site?

Train it on your website and your documents, then install it with one snippet or a one-click WordPress plugin. Voice and chat on every plan. Free to start, no card.