UltKit

Convert JSON to CSV

Get API responses, app exports and log files out of JSON and into rows and columns. Upload .json, .jsonl or .ndjson files and download a CSV with one line per record.

Data Converter

or drop CSV, TSV, TXT … files here ·

Max 95 MB per file· Up to 20 files· Deleted after 30 minutes

Output

Files are processed on our servers and deleted after 30 minutes.

How to use this tool

  1. 1

    Upload JSON data

    Add files holding an array of objects, or JSON Lines with one object per line. Up to 20 files, 95 MB each.

  2. 2

    Check the CSV settings

    UTF-8 with BOM is preselected under Text encoding so Excel on Windows reads accents. Set Delimiter to Semicolon if your Excel expects it, or turn on Quote every value for strict importers.

  3. 3

    Convert and download

    Press Convert to CSV. The header row lists every key found in the records; open the file or import it wherever CSV is accepted.

JSON to CSV turns a list of records into a table: each object becomes a row, each key becomes a column, and nested fields are spread into columns of their own.

Why convert JSON to CSV

JSON is how web services talk to each other. Order systems, payment providers, analytics APIs and form builders all hand data out as JSON, and NoSQL databases such as MongoDB and Firebase store documents in a JSON-like shape. That is ideal for programs and frustrating for everyone else, because a 5 MB JSON file in a text editor is a wall of braces.

CSV is the opposite trade. It cannot express nesting or types, but every spreadsheet, BI tool, CRM import and database loader reads it. Converting is how an operations manager gets a list of orders into a pivot table, how a data analyst moves an API pull into a SQL table, and how a support lead shares a filtered export with a colleague. When the data starts life as XML instead, XML to CSV does the same flattening for tags.

Nested JSON to CSV: how flattening works

Flatteningnormalizing · unnesting
Writing a nested object as extra columns of the same row, named after the path to each value, so {"customer":{"city":"Austin"}} becomes a column customer.city holding Austin.
Two orders from an API response, flattened
[{"id":5012,"total":42.9,"paid":true,"customer":{"name":"Ada Okafor","city":"Austin"}},
 {"id":5013,"total":18,"paid":false,"customer":{"name":"Lin Wei","city":"Toronto"}}]

id,total,paid,customer.name,customer.city
5012,42.9,true,Ada Okafor,Austin
5013,18,false,Lin Wei,Toronto

JSON variants and table outputs

from ↓ · to →CSVTSVXLSX
JSONJSON to CSV: yesJSON to TSV: yesJSON to XLSX: yes
JSONLJSONL to CSV: yesJSONL to TSV: yesJSONL to XLSX: yes
NDJSONNDJSON to CSV: yesNDJSON to TSV: yesNDJSON to XLSX: yes
YAMLYAML to CSV: yesYAML to TSV: yesYAML to XLSX: yes
XMLXML to CSV: yesXML to TSV: yesXML to XLSX: yes
supported not offeredJSON Lines and NDJSON hold one JSON object per line, the export format of BigQuery and many logging tools.

Lists inside a record are the one thing a flat row cannot hold neatly. An order with five line items is really two tables: orders and items. If those lists matter, extract the array into its own JSON file and convert that separately, so each line item gets its own row with the order ID beside it.

JSON and CSV format facts

JSON

JavaScript Object Notation

JSON is a lightweight text format for structured data, popularised by Douglas Crockford in the early 2000s and standardised as RFC 8259 and ECMA-404. It represents objects, arrays, strings, numbers, booleans and null with simple, readable syntax. It is the default format for web APIs, configuration files and data exchange between apps in almost every programming language. It has no comments, dates or schemas built in, and large nested files are hard to read without a viewer.

Compression
–
Transparency
–
Animation
–
Introduced
2001 · Douglas Crockford
JSON converter

CSV

Comma-separated values

CSV is a plain-text format for tables in which each line is a row and commas separate the columns. It has been used since the early days of computing and is described in RFC 4180, though many variants use semicolons or tabs and different text encodings. Nearly every spreadsheet, database and analytics tool can import and export it, which makes it the default format for moving data between systems. CSV stores only values, with no formulas, formatting, multiple sheets or data types.

Compression
–
Transparency
–
Animation
–
Introduced
–
CSV converter

People convert JSON to CSV when data fetched from an API or an app has to be analyzed, shared or imported by someone who works in spreadsheets, not code.

JSON to CSV conversion FAQ

What JSON structure converts cleanly to CSV?

An array of objects that share most of their keys, like [{"id":1,"name":"Ada"},{"id":2,"name":"Lin"}]. Each object becomes a row and each key a column. A single object at the top with the records inside one property also works, as long as the records themselves are a list.

What if some records have keys that others lack?

The header is the union of all keys, so a field that appears in only some records still gets a column. Records without it leave that cell empty. That is normal for API data, where optional fields are simply omitted.

How are true, false and null written?

CSV has no data types, only text. Booleans are written as the words true and false, numbers as digits, and null as an empty cell. If an importer needs 1 and 0 instead of true and false, replace them in a spreadsheet after converting.

Why does Excel show weird characters instead of accents?

Excel on Windows assumes a regional code page for CSV files unless the file starts with a byte order mark. This page writes UTF-8 with BOM for that reason. Tools on Linux or in data pipelines sometimes prefer plain UTF-8; switch Text encoding for those.

Should I pick CSV or an Excel file for JSON data?

CSV if the next step is an import into another system, a database load or a script. A workbook if people will read and edit the data, because JSON to Excel keeps types and avoids Excel re-guessing columns such as ZIP codes on open.

Can I get the original JSON back from the CSV?

Only the flat version. Arrays and deep nesting were spread into columns or text, and number versus string types are no longer recorded, so a round trip produces flat objects. Keep the source JSON if you will need its original shape.