English
Getting data in

JSON to table

Updated 2026-09-04 · 1 min read · For desktop macOS 0.0.9 / Windows 0.0.7

A JSON file returned by an API becomes a table directly — the keys of an object array become columns, one object per row. For when you already have an API result and do not want to configure a connection.


Two ways in

  • Tools → Json to Table (the card is tagged "Json" / "to Table"): creates a new table.
  • Import → From JSON inside a table: appends to that table.

The only difference is where the result lands. Column matching is the same as an Excel import — by column name; keys the table does not have become new columns, and existing columns not covered by this JSON keep their values on existing rows.

Three steps

The wizard names them exactly:

  1. Upload Json — pick a .json file. UTF-8 plain text; no extra size limit.
  2. Select Table — a new one, or an existing one.
  3. OK — you land in a preview. That preview is identical to Upload Excel and CSV: rename columns, delete columns, set field types, then finish.

The shape JSON needs

The ideal is an array of objects:

[
  { "order": "A001", "customer": "Eastern Trading", "amount": 3180 },
  { "order": "A002", "customer": "Northern Logistics", "amount": 620 }
]

One object per row; the key names become column names.

  • Objects nested one level deep are flattened into parent.child columns.
  • Deeper nesting, and arrays inside arrays, are easier to handle at the source: extract the level you want before importing rather than unpicking it afterwards.
  • If this JSON is what some endpoint returns on a schedule, do not download it by hand every time — point a data connection at that endpoint and let it pull on a plan, using JSONPath to take only the fields you want.

After it lands

An ordinary table: formula columns, views, dashboards, and another JSON appended next time. If the same records can arrive twice, set a primary key on whatever the source calls the id.

Did this page not answer your question? Browse the help centre, or write to support@tabledi.com — the inbox is read by the people who build TableDI.