Convert JSON to CSV and CSV to JSON in your browser: flatten nested objects to dot paths, choose comma, semicolon, tab or pipe delimiters, handle arrays and quoted fields, and detect types.
Turning JSON into CSV sounds simple until the JSON has nested objects, arrays, or rows with different keys. This converter is built for exactly that: it flattens nested objects into dot-path columns (address.city), builds the header from every key that appears in any row, lets you choose how arrays are written, and escapes quotes, delimiters and line breaks the way RFC 4180 describes. It also goes the other way, parsing CSV with quoted fields and embedded newlines into JSON, with delimiter auto-detection and optional type detection. For converting between JSON, YAML and CSV in one place, use the Data Format Converter; this page is the dedicated JSON and CSV tool with control over delimiters, flattening and arrays. Everything runs in your browser.
Each nested key becomes its own column named with a dot path, so {"address": {"city": "London"}} produces a column called address.city. Going back from CSV to JSON, tick "Rebuild nested objects from dot paths" to turn those columns into nested objects again.
You choose. "Keep as JSON text" writes the array as a JSON string in one cell, "Join values" writes primitive items separated by "; " (arrays of objects fall back to JSON text), and "One column per item" creates tags.0, tags.1 and so on. The last option gives the most spreadsheet-friendly result when arrays are short.
The header is the union of every key found in any row, in the order each key first appears. A row that lacks a key gets an empty cell in that column, so nothing is dropped and the columns stay aligned.
A value that contains the delimiter, a double quote or a line break is wrapped in double quotes, and any double quote inside it is doubled, which is the RFC 4180 rule that Excel, Google Sheets and most parsers expect. The CSV reader understands the same rules, including quoted fields that span several lines.
Yes. In CSV to JSON mode, Auto-detect looks at the first lines and picks comma, semicolon, tab or pipe, whichever splits them into the same number of columns. The summary tells you which one it chose. If a file is unusual, set the delimiter by hand.
CSV has no types, so every cell is text. With the option on, cells like 42 or 3.5 become numbers, true and false become booleans, and empty cells and the word null become null. Numbers with leading zeros and very long digit strings stay as text so IDs and phone-like values are not changed. Turn the option off to keep every value as a string.
A single JSON object is treated as one row. A list of plain values such as [1, 2, 3] becomes one column called value. Invalid JSON shows the parser message instead of producing partial output.
No. Parsing and conversion happen in your browser with this page's own code, so the data you paste never leaves your device.
← All tools · Converters · Blog · Cheat sheets · FAQ