AAP98

CSV or Excel tool

JSON to CSV

Convert a JSON array of objects or arrays into CSV. The column list is the union of all keys, missing values become empty fields and dangerous formula prefixes are guarded.

Add files

Drop JSON files here, or choose files. Everything stays on this device.

Options

Flattening turns {"a":{"b":1}} into a column named a.b.

Waiting for files

Accepted input

  • JSON files containing an array

Limits

  • Up to 20 MB per CSV/Excel file and up to 100000 rows.
  • CSV, TSV, XLSX and JSON inputs are supported in this category.

Local processing

  • Files are read in your browser and are never uploaded to a server.
  • Nothing is stored after you close or reload the page.

How to use JSON to CSV

  1. Add a JSON file whose root is an array.
  2. Choose whether nested objects are flattened into dotted keys.
  3. Press JSON to CSV and download the CSV file.

What it does

  • Builds the column set from the union of every object key, in encounter order.
  • Flattens nested objects into dotted column names when you keep that option on.
  • Guards cells that a spreadsheet would treat as formulas.

Limits and things to know

  • The JSON root must be an array; a single object is rejected with a clear message.
  • Arrays inside a value are written as a compact JSON string rather than expanded into columns.
  • Nested values can be rejected on purpose with the "error" strategy if you want strict columns.

Example

Exporting API data for a spreadsheet

Given [{"id":1,"tags":["a","b"]},{"id":2,"city":"SF"}], the output has columns id, tags and city. The first record has no city, so that cell is empty, and the tags array is written as its JSON text.

Frequently asked questions

What if records have different keys?

The columns are the union of all keys. A record that lacks a key gets an empty cell for that column.

Why is an array value written as text?

CSV is two-dimensional, so a nested array cannot map to columns without a naming rule. It is preserved as JSON text instead of being dropped.

Is a single JSON object accepted?

No. Wrap it in an array, for example [{ ... }], so the row count is unambiguous.

Runs entirely in your browser on ap98.com. Files are never uploaded.

© 2026 AP98ap98.com · Built for everyday problem-solving.