Tools · Markdown

JSON to Markdown table

Rows in, a pipe table out — and a pipe table in opens as rows without a question, because its second line is the whole signature.

JSON, YAML, XML, CSV, a log file, or something broken. It stays in this tab.
try
no signup · runs entirely in your browser · ⌘V works anywhere on this page

What it does

  • Convert → Markdown writes a pipe table from any rows: a JSON array of objects, a CSV, NDJSON, a log read as records
  • From a JSON document, the rows come from the array it finds — “rows from $.items” — or from the branch the tree is focused on
  • Escapes a | in a cell and writes a newline as <br>, so the table survives a Markdown renderer
  • Opens a pasted pipe table straight as rows — “6 rows · read as a Markdown table” — and converts on to CSV, JSON or NDJSON
  • Keeps the column order: the first row’s keys as written, then any key a later row adds

What it will not do

  • Render Markdown. It writes the table text; your README renders it.
  • Write alignment colons. A table it writes uses plain --- rules under the header.
  • Make a table out of a document with no list in it — that is refused with the reason, not padded into one row.

The sample

The text below is what the first chip opens — a real document the engine reads, not an illustration written for this page.

kibana-export.md
| @timestamp | level | service | message | duration_ms |
|---|---|---|---|---|
| 2026-04-21T14:32:08Z | INFO | checkout-api | stripe.charge.completed | 88 |
| 2026-04-21T14:32:07Z | WARN | checkout-api | retry.scheduled attempt=2 | 400 |
| 2026-04-21T14:32:07Z | ERROR | checkout-api | stripe.webhook.signature_invalid | 12 |
| 2026-04-21T14:32:07Z | INFO | checkout-api | cart.items.priced items=2 | 51 |
| 2026-04-21T14:32:06Z | INFO | auth-svc | session.token.issued ttl=3600 | 9 |
| 2026-04-21T14:32:05Z | ERROR | inventory | inventory.hold.failed sku=BRD-OAK-002 | 130 |

How

  1. Paste the JSON (or CSV, NDJSON, a log) and open it as a tree or as rows.
  2. Press Convert, then the Markdown chip.
  3. Copy, or download the .md. For the reverse, paste the table — it opens as rows.

Questions

Which JSON becomes a table?

An array of objects — one row each, keys as columns. In a document, the array it finds is used and named; focus a branch to convert that branch alone.

Can I convert a Markdown table to CSV or JSON?

Yes. Paste the table; it opens as rows with no question asked, and Convert offers CSV, JSON, NDJSON, YAML and XML.

Does the table keep my column order?

Yes — the keys of the first row in the order they appear, then any key a later row adds, at the end.

What about a cell with a pipe in it?

It is escaped as \|, so the column count holds when the table is rendered.

Try it on the file that broke your afternoon.

free while in alpha · no signup