JSON to Table Converter — HTML, Markdown, CSV, SQL
Paste an array of JSON objects and get a table — then copy it as HTML, Markdown, CSV, TSV or SQL. Rows with different fields still line up.
—
What this tool does
APIs, exports and logs speak JSON, but people read tables — and spreadsheets, issue trackers and documentation all want a table. This tool bridges the two: give it an array of JSON objects and it produces a table in whichever format you need to paste next, computing the columns from the data rather than asking you to declare them.
The output formats
| Format | Where it goes |
|---|---|
| HTML | A complete <table> for a web page or email. |
| Markdown | A pipe table for GitHub, a README or a pull-request comment. |
| CSV | A file for any spreadsheet or data import; quotes fields that contain commas. |
| TSV | Tab-separated — paste directly into Excel or Google Sheets. |
| SQL | INSERT INTO … statements, with numbers unquoted and blanks as NULL. |
How columns are chosen
Real data is rarely uniform: the third record has an extra field, or the tenth is missing one. The table takes the union of every key it sees, in the order the keys first appear, so nothing is dropped and nothing shifts. A value that a given row does not have becomes an empty cell. This is the difference between a converter that survives messy data and one that silently misaligns it.
Working safely with real payloads
JSON pasted into a converter is often a live API response — an auth token, a customer record, an internal ID. This page never sends your text anywhere; the parsing and formatting happen in your browser and nothing is logged or stored. That is deliberate: converting data should not mean handing it to a third party.
Frequently asked questions
What input does this expect?
An array of JSON objects — the shape an API returns for a list, such as [{"name":"Ann","age":30},{"name":"Bob","age":25}]. A single object is treated as one row, and an object whose values are themselves objects (a keyed map) becomes one row per key with the key added as a leading column.
What if the rows do not have the same fields?
The columns are the union of every row’s keys, in the order they first appear. A row that is missing a field gets an empty cell in that column, so the columns never fall out of alignment — which is the usual failure when hand-editing JSON into a table.
Which output formats can I copy?
HTML (a complete <table> ready to paste into a page), Markdown (a GitHub-flavoured pipe table), CSV and TSV (for spreadsheets — TSV pastes straight into Excel or Google Sheets), and SQL INSERT statements you can run against a table.
How are nested objects and arrays handled?
A nested object is written as compact JSON in its cell, and an array is joined with commas. This keeps every row one line tall, which is what a table needs; if you want a nested field promoted to its own column, flatten it in the source first.
Is my JSON uploaded?
No. The conversion runs entirely in your browser and nothing is sent anywhere. That matters when the JSON is a response body carrying tokens, emails or other data you would not paste into a server tool.
Can I go the other way, table to JSON?
Use the CSV to JSON tool for spreadsheets, or the JSON, YAML, TOML & XML converter for structured data. This page is the JSON → table direction.
Go deeper
Longer explanations of the problems this tool solves:
Sources
- RFC 4180 — Common Format and MIME Type for CSV Files.
- GitHub Flavored Markdown Spec — tables.
Everything runs in your browser — nothing you type is uploaded.