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.

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.

```
| @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

- Paste the JSON (or CSV, NDJSON, a log) and open it as a tree or as rows.
- Press Convert, then the Markdown chip.
- 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.

## Behind this page

## Try it on the file that broke your afternoon.

free while in alpha · no signup

---

Canonical: https://unstringify.com/tools/json-to-markdown-table
