Developer tools

JSON to Table

Turn JSON records into a readable table.

Keep the details. See every field. Export when you’re ready.

Processed in your browser

Paste JSON, or open a UTF-8 file.

Enable JavaScript to build a table.

From JSON to rows

  1. Array items become rows

    Each top-level array item gets a row. A single object or scalar gets one row. An empty array has no rows.

  2. Keys become columns

    All object keys are included in first-seen order. Mixed arrays use a separate (whole value) column for non-object items.

  3. Nested values stay JSON

    Objects and arrays remain in their cells. Nothing is flattened. Numbers keep their original digits and exponent text.

  4. Missing stays visible

    The preview uses JSON notation: "" is an empty string, null is null, and missing means no field.

How it works

  1. Add your JSON

    Paste a JSON value or open a UTF-8 file. Load the example to try mixed fields and nested data.

  2. Build and inspect

    Build the table and move through rows and columns. Edit and rebuild whenever you need.

  3. Copy or download

    Copy CSV or download CSV or HTML. Every row and column is included, even empty object rows.

Mapping and exports

The preview and HTML show each value as JSON text, including quotes around strings. Object-key headers use JSON quotes; the unquoted (whole value) header identifies non-object rows. A Row column is added for reference in both exports, so empty object rows are retained.

CSV decodes strings to ordinary text, leaves missing fields empty, writes null as null, and retains nested JSON. CSV has no JSON type information: missing and empty strings become the same cell; null and the string “null” also look alike. Use HTML for visible type distinctions. Headers keep JSON quotes around object keys.

Numbers and spreadsheet safety

Number text such as 9007199254740993, -0 and 1e999 is preserved in the table and exported bytes. A spreadsheet may still round numbers or convert dates when opening CSV. Import columns as text to retain those values.

Spreadsheet-safe CSV is on by default. Cells starting with formula-like =, +, - or @ after whitespace, or with a tab or line break, gain a leading apostrophe. This also changes negative-number cells. The result reports how many cells changed. Disable it for unchanged cell text; spreadsheet behavior varies.

Frequently asked questions

What JSON can I convert?

Objects, arrays and scalar values are supported. An array of arrays has one whole-value column, preserving each inner array. A nested array inside an object stays in its field; to make its items rows, paste that array as the top-level input. Comments, trailing commas and duplicate object keys produce an error.

Is anything truncated?

The preview shows 25 rows and 8 data columns at a time. Use the navigation to reach all remaining values. Exports contain all rows and columns. There is no configured input-size cap; browser memory, string limits and nesting depth can still cause failure. Cancel stops processing.

Are my values treated as HTML?

No. Preview values use text elements. The HTML export escapes markup and includes no scripts, links, images or remote resources. Text such as an image tag stays visible text.

What happens to encoding and whitespace?

Files must be UTF-8; a file’s initial UTF-8 BOM is ignored. Pasted line endings follow the browser’s LF convention. Nested JSON keeps its source whitespace. Unpaired Unicode surrogates are written as visible Unicode escapes so UTF-8 does not silently replace them. CSV uses quoted fields, doubled quotes and CRLF record endings.

Where does processing happen?

Parsing, mapping and exports run in your browser. Input is not uploaded, logged or stored. Reset releases input, table and download links; it does not delete a downloaded file or clear your clipboard.

Will my values stay unchanged?

The tool accepts strict JSON and preserves the original text of numbers and nested values. It does not evaluate code or round numbers in the output.