Skip to content

JSON to Table

JSON to table in one paste: objects become rows, keys become columns, and you can sort, drill in and save the result as CSV.

Input · JSON
#
0TP1351LISLHR07:40On timeB120
1IB3107MADCDG08:05DelayedK335
2KL1702AMSBCN08:20BoardingD70
3LH1830MUCLIS09:10Cancellednullnull
4SK1455CPHOSL09:25On timeA210
Valid JSON5 items · depth 3 · 35 keysRuns in your browser

Load from a URL

Your browser fetches it directly, so the server must allow cross-origin requests (CORS).

How JSON to table works

  • Array of objects: one row per object, one column per key, in the order keys first appear.
  • Array of plain values: a single value column.
  • Object: key and value columns.
  • Object wrapping an array, like {"total": 3, "results": [...]}: the table opens on results.

Nested objects and arrays show their size, {1} or [2]. Click one to open it as its own table; the path above the table, such as $ › results › [0] › labels, leads back.

Example

{
  "total": 3,
  "results": [
    { "id": 4021, "title": "Export to PDF cuts off tables", "state": "open", "assignee": { "login": "mkim" }, "labels": ["bug", "export"] },
    { "id": 4019, "title": "Add dark mode to reports", "state": "closed", "assignee": { "login": "jdoe" }, "labels": ["feature"] },
    { "id": 4007, "title": "Typo on pricing page", "state": "closed", "assignee": { "login": "mkim" }, "labels": [] }
  ]
}

The table opens on results:

# id title state assignee labels
0 4021 Export to PDF cuts off tables open {1} [2]
1 4019 Add dark mode to reports closed {1} [1]
2 4007 Typo on pricing page closed {1} [0]

[2] in the first row opens bug and export in a one-column table.

Sort columns

Click a header for ascending, again for descending, a third time for the original order. Numbers sort by value and text alphabetically; empty and null cells stay last either way. The # column keeps each row’s original index.

Hide columns

Press Fields and uncheck the keys you don’t need. Their columns disappear, and Download CSV leaves them out. Keys of nested objects are listed under their parent, such as login under assignee. Save keeps the choice as a named preset in this browser.

Download CSV

Download CSV saves the current level as table.csv, every row included. Nested objects become dotted columns and arrays become JSON text:

id,title,state,assignee.login,labels
4021,Export to PDF cuts off tables,open,mkim,"[""bug"",""export""]"
4019,Add dark mode to reports,closed,jdoe,"[""feature""]"
4007,Typo on pricing page,closed,mkim,[]

For a semicolon, tab or pipe delimiter, or nested objects kept as JSON, use JSON to CSV. CSV to JSON goes the other way.

Limits

The first 1,500 rows are shown, with the total below. Columns come from the first 2,000 rows, and cells cut text at 200 characters. It does not write HTML <table> markup. Deep or irregular data is easier to follow in the JSON viewer tree.

Questions

Why are some cells empty?

That row does not have the key. A key whose value is null shows null, so you can tell a missing field from an empty one.

Does sorting change my JSON?

No. It only reorders the rows on screen. The editor text and the CSV download keep the original order.

Can I edit values in the table?

No, the table is read-only. Edit the JSON in the editor; the table redraws a moment after you stop typing, back at the top level.

Can I open the result in Excel or Google Sheets?

Yes. Press Download CSV, then open the file in Excel or import it into Google Sheets.

Related tools

Esc