JSON to Markdown Table Generator

Generate markdown tables from JSON arrays.

What This Tool Does

This tool converts a JSON array of objects into a standard Markdown pipe table. It scans every object in the array and collects the union of all keys used across them, and uses that combined list as the table's column headers. It then writes a header row, a separator row (| --- | --- |), and one data row per object in your array.

Values are converted to plain text automatically: null or missing values become empty cells, objects and arrays are serialized inline with JSON.stringify, and any pipe character (|) found inside a value is escaped as \| so it doesn't get mistaken for a column separator. The result is a clean, ready-to-paste block of Markdown that renders as a proper table anywhere Markdown tables are supported.

How to Use It

  1. Paste a JSON array of objects into the Input box on the left (for example, an array of user records, API results, or product listings).
  2. Click Run to generate the Markdown table.
  3. Copy the generated text from the Output box on the right.
  4. Paste it into a README, GitHub/GitLab issue or pull request, Notion page, wiki, or any editor that supports Markdown tables.
  5. Click Clear to reset both boxes and start over with new data.

Worked Example

Given the following input:

[
  { "id": 1, "name": "Widget A", "price": 9.99, "inStock": true },
  { "id": 2, "name": "Widget B", "price": 14.5, "inStock": false },
  { "id": 3, "name": "Widget C", "price": 4.25, "inStock": true }
]

The tool produces this raw Markdown output:

| id | name | price | inStock |
| --- | --- | --- | --- |
| 1 | Widget A | 9.99 | true |
| 2 | Widget B | 14.5 | false |
| 3 | Widget C | 4.25 | true |

That raw text is not meant to be read as-is — when pasted into GitHub, GitLab, Notion, or any Markdown-aware viewer, it renders as an actual formatted table with aligned columns and borders, exactly like this:

id name price inStock
1Widget A9.99true
2Widget B14.5false
3Widget C4.25true

Common Use Cases

Frequently Asked Questions

Does GitHub render this automatically?

Yes. GitHub, GitLab, and most Markdown viewers support GitHub Flavored Markdown (GFM) pipe tables, so pasting the generated Markdown into a README, issue, or pull request comment renders it as a formatted table automatically.

What if a value contains a pipe character?

Any pipe character (|) inside a value is automatically escaped as \| so it does not break the table structure. You do not need to sanitize your data beforehand.

Is my data uploaded anywhere?

No. The conversion runs entirely client-side in your browser using JavaScript. Your JSON is never sent to a server, logged, or stored.

What kind of JSON does this tool accept?

It requires a JSON array of objects, such as [{"id":1,"name":"A"}]. A single object or a plain array of strings or numbers is not supported, since there are no key-value pairs to turn into columns.

What happens if objects have different keys?

The tool collects the union of all keys found across every object in the array and uses that combined set as the table's column headers. Objects missing a given key simply get an empty cell for that column.

Related Tools & Guides