View JSON as a table
JSON Mill finds the arrays of records in your file and shows them as a table you can sort, filter and edit.
The table is built on this device from JSON that is never uploaded. How your data stays local.
Problems
JSON Mill's table viewer shows an array of JSON records as a grid: one row per record, one column per field, with nested objects as dotted columns such as shipping.country. You can sort by any column, filter rows, see a summary of each field and edit values in place.
It finds the arrays of records anywhere in your document, so you do not have to dig the array out first. Everything runs in your browser.
How to view JSON as a table
- Open your JSON. Paste it, drop a file on the workspace or press Open file. The Table view opens on the main array of records.
-
Pick the data. If the document has several arrays, choose one in the Data list. Nested arrays such as
products[].variantsare offered as one combined table too. -
Sort and filter. Click a column header to sort, type in Filter rows to search every column, or use a column's own filter with operators such as
>20or=paid. - Look closer. Open Summary on a column to see its types, how many cells are filled, distinct values, the most common values and the numeric range. Click a nested array or object cell to drill into it.
Example: orders filtered and sorted
Five orders with a nested shipping object. The total column is filtered with >20 and sorted from high to low.
{
"orders": [
{ "id": "A-1001", "status": "paid", "total": 54.50, "items": 3, "shipping": { "country": "US", "method": "ground" } },
{ "id": "A-1002", "status": "refunded", "total": 19.99, "items": 1, "shipping": { "country": "CA", "method": "ground" } },
{ "id": "A-1003", "status": "paid", "total": 120.00, "items": 5, "shipping": { "country": "US", "method": "express" } },
{ "id": "A-1004", "status": "paid", "total": 8.25, "items": 1, "shipping": { "country": "GB", "method": "ground" } },
{ "id": "A-1005", "status": "pending", "total": 64.00, "items": 2, "shipping": { "country": "US", "method": "ground" } }
]
}
| id | status | total | items | shipping.country | shipping.method |
|---|---|---|---|---|---|
| A-1003 | paid | 120.00 | 5 | US | express |
| A-1005 | pending | 64.00 | 2 | US | ground |
| A-1001 | paid | 54.50 | 3 | US | ground |
Two orders are under 20, so 3 of 5 rows remain. The nested shipping object became two columns, shipping.country and shipping.method. Sorting compares the number text exactly, so 120.00 sorts above 64.00 and the trailing zeros stay as they are in the file.
Column filters
Each column has a quick filter. Plain text matches anywhere in the cell, ignoring case. These operators work too:
>20,>=20,<5,<=5compare numbers, including numbers stored as text such as Shopify prices.=paidmatches the whole cell, and!=paideverything else.=on its own finds empty cells, and!=on its own finds cells with a value.
Editing in the table
Double-click a cell, or press Enter on it, to change one value. Bulk edit changes a whole column at once: set a value, find and replace (with an option for regular expressions), add, subtract or multiply numbers with rounding, trim spaces, or change case. You see a preview of every change first, and you can apply it to all rows or only the filtered ones.
Edits change only the text of the values you edited in the source. Formatting, key order and every other number stay exactly as they were, and each edit can be undone in one step.
Options
| Option | What it does |
|---|---|
| Data | Which array of records to show. Lists every record array JSON Mill found, plus nested arrays combined across their parents. |
| Summary | Type mix, filled cells, distinct values, top values and the minimum and maximum of a column, computed on the rows the current filters show. |
Limits
- Nested objects are shown as dotted columns up to three levels deep. Arrays inside a record show as a chip such as
[2 items]; click it to open the array as its own table. - A cell shows at most 400 characters. The full value is one click away in the Tree view.
- On arrays of more than 20,000 records, columns are found from a sample of 20,000 records, so a field that appears in only a few records can be missed.
Questions
- How can I view a JSON array as a table?
- Paste the JSON or open the file on this page. JSON Mill detects the array of records, even inside a wrapper object such as
{"data": [...]}, and shows it as a table with one row per record and one column per field. - Does it work on a phone?
- Yes. On a narrow screen the source and the result are two tabs, and the table scrolls sideways inside its own box so the page does not. Sorting, filters and the column summary work the same way.
- What happens to nested objects and arrays?
- Nested objects become dotted columns, such as
price.amount. Arrays stay in one cell as a chip that shows how many items they hold; click it to open that array as its own table, and use the breadcrumbs to go back. - Can I export the table?
- Yes. Export downloads the records as CSV, TSV, Excel or JSON Lines, with the same columns as the table. See JSON to CSV for the options.
Related tools
Last updated