NV ToolkitFormat · Validate · Convert

Converters

JSON to CSV Converter

Flatten JSON arrays into spreadsheet-ready CSV — nested keys become dot-path columns, quoting handled for you.

In short

JSON to CSV turns an array of objects into one CSV row per object. Nested objects and arrays are flattened into dot-path columns, the header row is the union of every key found, missing fields leave empty cells, and cells containing commas, quotes or line breaks are quoted per RFC 4180 so the file opens in Excel and Google Sheets.

By NaveenKumar T · Updated

Learn: How to Convert CSV to JSON in JavaScript, Python and the Browser

  • Instant in-browser conversion
  • Validates input first
  • Nested keys flatten to dot paths

Runs entirely in your browser — nothing you paste or open here is uploaded, logged, or stored.How we handle data →

Example

JSON to CSV: input and output

Two support tickets with a nested requester object, a tags array (empty on the second ticket), a subject containing a comma and a null field.

Input · JSON
[
  {
    "id": 4211,
    "subject": "Login fails, then hangs",
    "requester": { "name": "Priya N.", "email": "priya@example.org" },
    "tags": ["auth", "urgent"],
    "resolved": false
  },
  {
    "id": 4212,
    "subject": "Invoice PDF blank",
    "requester": { "name": "Tom Reyes", "email": "tom@example.org" },
    "tags": [],
    "assignee": null
  }
]
Output · CSV
id,subject,requester.name,requester.email,tags.0,tags.1,resolved,tags,assignee
4211,"Login fails, then hangs",Priya N.,priya@example.org,auth,urgent,false,,
4212,Invoice PDF blank,Tom Reyes,tom@example.org,,,,[],

Note how requester.name and requester.email became dot-path columns and the first ticket's tags array spread into tags.0 and tags.1, while the second ticket's empty array produced a separate tags column holding []. The subject with a comma was quoted, and the null assignee is an empty cell.

Learn more

How JSON to CSV conversion works

If your JSON is an array of objects, each object becomes one CSV row. Nested structures are flattened with dot notation — customer.name, items.0.sku — so no data is lost, just re-shaped into columns. The header row is the union of every column found across all rows; objects missing a field simply leave that cell empty.

Cells containing commas, quotes, or line breaks are wrapped in double quotes with internal quotes doubled, per RFC 4180 — so the file opens correctly in Excel, Google Sheets, and every standard CSV parser.

When to convert JSON to CSV

The classic path from API to spreadsheet: analysts want Excel, your data is JSON. Convert the response here, download data.csv, and it opens with proper columns immediately. Equally useful for loading JSON exports into SQL databases via COPY/LOAD DATA, for diffing datasets in tools that understand tables better than trees, and for handing non-developers a readable version of structured data.

Help

Frequently asked questions

Everything you need to know about the JSON to CSV.

01How do I convert a single JSON object, not an array, to CSV?

A single object becomes one data row under a header built from its keys, with nested objects flattened to dot-path columns. If what you want is one row per item, paste the inner array rather than the object that wraps it — {"orders": […]} should be converted as […].

02What happens to nested objects and arrays in CSV?

They're flattened into dot-path columns: {"customer":{"name":"Ada"}} becomes a customer.name column, and arrays index numerically (items.0.sku, items.1.sku). CSV is a flat format, so deep nesting widens the table — if each array item should be its own ROW instead, convert the inner array rather than the wrapper object.

03How are null, boolean, and empty values written into cells?

null becomes an empty cell — indistinguishable from a key that was simply missing from that object. Booleans are written as the literal text true or false, and numbers keep their JSON form (1.5, 1e21). An empty array or empty object is not dropped: it appears as the two-character text [] or {} so you can see the field existed. Column order follows first appearance — keys from the first object come first, and new keys discovered in later objects are appended to the right.

04Can I convert the CSV back to the original JSON?

Only for flat, string-typed records. Dot-path columns such as customer.name come back from CSV to JSON as flat keys named "customer.name", not as nested objects; empty cells come back as null whether they were null or missing; and numeric-looking text is re-typed unless "Keep everything as strings" is selected. A round trip is a good check that nothing was dropped, not a way to restore nesting.

Keep working

Related tools

Learn the format

Related guides

All guides →