JSON to table converter
About JSON to Table
This JSON to table converter shows a JSON array as a readable table. Each object becomes a row, each key becomes a column, and you can sort by any column with a click.
API responses rarely start with the array. When the rows are nested, as in {"data": {"users": [...]}}, the converter finds the first array of objects for you, or you can type the path to the rows yourself.
Copy the result as an HTML table for a web page or email, or as a Markdown table for a README, wiki or pull request. Everything runs in your browser. Nothing is uploaded.
How it works
Rows found automatically
With the rows path left empty, a top-level array is used as it is. Otherwise the converter searches the document level by level and uses the shallowest array that contains objects. The status bar shows which path the rows came from, such as $.users. A plain object becomes a one-row table.
Nested objects become columns
With Flatten nested on, a nested object such as address: {city, country} becomes the columns address.city and address.country. Arrays stay in one cell as compact JSON, so a list of tags does not explode into dozens of columns. Turn flattening off to keep each nested object as JSON in a single cell.
Columns from every row
Columns are collected from all rows in the order they first appear, so a key that exists in only some objects still gets a column. Rows without it show an empty cell.
Sort without changing the copy
Click a column header to sort ascending, again for descending, and a third time to restore the original order. Numbers sort by value, not as text. Sorting only changes the view: Copy output and Download always give the rows in document order.
Frequently asked questions
How do I convert JSON to an HTML table?
Paste the JSON. The table appears on the right. Leave Copy as on HTML and press Copy output to get a <table> with a <thead> row of column names and one <tr> per object, with the cell text HTML-escaped.
My JSON is an object, not an array. Will it work?
Yes. If the object holds an array of objects anywhere inside it, that array becomes the rows. Type a path such as data.items in the bar above the panes to pick a different array. An object with no such array is shown as a single row.
How are nested arrays shown?
Arrays are kept in one cell as compact JSON, for example ["math","engines"]. To expand an array of objects into its own table, type its path in the rows bar.
Can I get a Markdown table instead?
Yes. Set Copy as to Markdown to get a GitHub Flavored Markdown table. Pipes, Markdown symbols such as * and _, and HTML characters inside cells are escaped, and line breaks become <br>, so each cell renders on GitHub as the text it holds.
How is this different from JSON to CSV or JSON to Excel?
This tool is for reading the data and pasting it into HTML or Markdown. Use JSON to CSV or JSON to Excel when you need a file to open in a spreadsheet.
Is there a row limit?
The table view shows the first 1,000 rows to stay responsive. Copy output and Download include every row. Very large files are limited only by your browser's memory.
Sources & last verified
We checked this tool's behavior and the claims on this page against the specifications below on . The tool runs in your browser, so the output you see is exactly what the engine produced. How we build and verify tools.
Last verified · Next review due
Found a wrong result or an outdated claim? Report an error and we will check it again.