Celtrim

Convert JSON to CSV

Paste JSON or drop the file and download a CSV that opens cleanly in Excel: one row per object, nested fields in their own columns.

JSON, JSON Lines, or drop an Excel/CSV file to go the other way.

Free · no sign-up · processed on your device

Only have a PDF? Convert PDF to Excel with StatementConverterAI.

How it works

  1. 01

    Paste the JSON or drop the file

    An API response, a .json export, or JSON Lines from a log all work. Invalid JSON is pointed out instead of producing an empty file.

  2. 02

    Check the rows

    Each object becomes a row and every key a column, even keys that only some objects have. Nested objects flatten to dotted names like address.city.

  3. 03

    Download the CSV

    Values with commas, quotes, or line breaks are quoted properly, and the file carries a byte order mark so Excel shows accents correctly.

JSON is nested and CSV is flat, so every JSON to CSV conversion makes decisions: which array is the rows, what happens to an object inside an object, and what to do when the third record has a key the first two lacked. This converter flattens nested fields into their own columns, collects every key that appears anywhere, and shows you the table before you download, so a missing column is visible before it reaches a spreadsheet.

What happens to the tricky parts

Nested objects
{ "address": { "city": "Oslo" } } becomes a column named address.city. Deeper nesting keeps adding to the name, so nothing is lost or stuffed into one cell.
Keys that only some objects have
Every key from every object becomes a column. Objects without it get an empty cell, so the columns line up instead of shifting.
Arrays inside a record
A list of plain values like tags joins with commas in one cell. A list of objects stays as JSON text in its cell, since it cannot become one row.
Several arrays in one file
{ "users": [...], "orders": [...] } becomes one table per array. Pick the one you need and download its CSV, or take the whole set as an Excel workbook.

Related conversions

Common questions

How do I convert JSON to CSV?
Paste the JSON into the box above or drop the .json file. The preview shows the rows; download CSV. An array of objects gives one row per object with the keys as columns.
How are nested JSON objects converted to CSV?
They flatten into columns with dotted names: address.city, address.zip. That keeps one row per record and every value in its own cell.
Does it support JSON Lines?
Yes. If the file is one complete object per line, it is read as an array and converted the same way.
Will Excel open the CSV correctly?
Yes. Fields containing commas, quotes, or line breaks are quoted, and a byte order mark tells Excel the file is UTF-8, so accented names do not turn into symbols.
Is there a size limit?
The converter handles up to 20,000 rows per table comfortably in a browser tab. Larger files open with a note saying how much was converted.
Is my JSON uploaded?
No. Parsing and the CSV both happen in JavaScript in your browser. The data never leaves your device.