Free · No account · Browser-based
JSON to CSV converter
Turn nested data into a usable spreadsheet.
Work with nested objects, API exports and JSON Lines. Choose your rows and columns, then inspect the CSV before you save it.
NESTED JSON
[
{"name":"Maya","location":{"city":"Bristol"}},
{"name":"Leo","location":{"city":"Oslo"}}
]CSV · FLATTENED FIELDS
name,location.city
Maya,Bristol
Leo,OsloA table you can actually work with.
Inspect → choose rows → build. Preview values and columns before anything is copied or saved.
Convert JSON to CSV in three steps
Add your data
Paste JSON or import a UTF-8 .json, .jsonl, .ndjson or .txt file. Select JSON Lines for one record per line.
Shape the table
Inspect the input, choose a row source and build CSV. Select, rename and reorder columns; enabled headers must remain unique, including after protection.
Review and save
Review exported values and warnings, then copy or download. Input and settings edits invalidate old results: rebuild CSV before exporting again.
Choose rows, not the wrapper
Row source starts at Root; it never guesses. For this fictional response, select /data/items. Only those records become rows; wrapper metadata such as page is not exported.
{"data":{"items":[{"sku":"MAP","qty":2}]},"page":1}Paths use RFC 6901 JSON Pointer: ~1 represents a slash in a key, and ~0 a tilde. Array expansion paths are relative to each row. Only detected paths are offered, not wildcards or JavaScript expressions.
Flatten fields or keep JSON cells
Flattening produces headers such as location.city. Special keys use escaped brackets to avoid collisions; __proto__ remains data. Disable flattening to retain nested objects as JSON cells. Arrays stay JSON by default; joining scalar arrays with the default | separator is not lossless. Complex arrays stay JSON.
Expand one selected array, such as /items, to repeat parent fields for each item. There is no Cartesian product across multiple arrays. Empty, missing or null expansion values keep one parent row. Null and missing cells default to blank; separate replacement settings help distinguish them, but CSV does not preserve JSON types.
Accepted input & practical limits
Strict JSON supports objects, scalar roots and heterogeneous arrays. Scalars use a deliberate (value) column; empty objects remain {} cells. An empty row array cannot convert. Duplicate keys are rejected even when identical. Comments, trailing commas and JSON5 are unsupported.
JSON Lines requires one complete JSON value per line: no blank interior lines or BOM; a final newline is allowed. Ordinary JSON accepts one leading BOM with a warning. Import reads local files, never URLs.
The table previews actual export-transformed values, initially 25 rows per page. Raw CSV preview stops at 50,000 characters; copy and download use the full result.
Limits and large inputs
Input: 2 MiB UTF-8 and 1,000,000 UTF-16 characters; depth 40; 200,000 tokens/nodes. Conversion: 10,000 output rows, 200 columns, 250,000 data cells, 4,000,000 field characters and 8 MiB output. Exceeding a conversion limit rejects the export, not silently truncates it.
Selectors list up to 60 row sources and 50 array paths per source, with 4,096-character paths and a 65,536-character combined selector-text budget. Headers allow 1,024 characters; null/missing replacements 100 each; join separators 32. Unpaired Unicode surrogates in exported fields are rejected rather than silently replaced. Column discovery can require choosing a smaller row source first. The cancellable worker has a 15-second deadline, not a speed promise.
Keep identifiers intact in Excel
Numbers retain their source spelling, including 9123372036854000123 and 2.370, without numeric arithmetic. Strings retain whitespace and decoded escapes. Excel can still remove leading zeros or retain only 15 significant digits.
Use Data → From Text/CSV → Transform Data. Set identifier columns to Text, replacing or removing the automatic Changed Type step before Close & Load. Quoting and a BOM do not force Text. See Microsoft's import guidance.
Delimiters, quotes and encoding
Comma, headers and CRLF are defaults; semicolon, tab (TSV), pipe, LF and quote-all are optional. RFC 4180 describes quoting fields with delimiters, newlines or quotes, and doubling embedded quotes. The optional UTF-8 BOM defaults on for downloads only; copy omits it.
Formula-risk protection, not a guarantee
Default-on protection checks text and exported headers for =, +, - or @, looking past leading control/whitespace and recognizing full-width equivalents. It prefixes an apostrophe, counts changed fields and leaves actual negative JSON numbers unchanged.
OWASP's CSV injection guidance explains why no sanitization works universally. Importers and save/reopen cycles can defeat protection; review untrusted data before opening it in a spreadsheet.
Local processing, deliberate sharing
No AI, conversion API or automatic workspace storage is used. Reload clears in-memory work, not copied text or downloaded files. Sitewide ads and analytics are separate: this is not a network-free-page guarantee. Read the Privacy Policy.
Frequently asked questions
Can I convert nested JSON and API responses?
Yes. Choose a detected row source such as /data/items, flatten nested fields or retain JSON cells, and optionally expand one array per row. Metadata outside that row source is not exported.
Does this support JSON Lines or NDJSON?
Yes. Select JSON Lines for one complete JSON value per line. Blank interior lines, a BOM, comments, trailing commas and duplicate keys are rejected; one final newline is allowed.
Will Excel keep leading zeros and long numbers?
The CSV preserves source number tokens, but Excel can reinterpret them. Import identifiers as Text before loading. Quotes and a UTF-8 BOM do not force text types.
What does formula-risk protection change?
It prefixes suspected formula-like text cells and exported headers with an apostrophe and reports the count. Actual negative JSON numbers are unchanged. This heuristic is not a universal spreadsheet-safety guarantee.
Is the converter free, and does it upload my data?
It is free with no account. Conversion uses a local worker, not AI or an upload API; work is not saved automatically. Sitewide analytics and ads operate separately.
Related Tools
All ToolsJSON Formatter & Validator
Format, validate and minify JSON with syntax error feedback and adjustable indentation.
JSON to TypeScript Converter
Infer interfaces or types from JSON and JSON Lines locally. Review optional fields, nulls and mixed arrays; download complete declarations.
Diff Checker
Compare two pasted texts and see line-by-line additions, deletions and unchanged content.
Invoice PDF to Excel
Extract summary fields from selectable-text invoice PDFs, review each invoice and export XLSX or CSV locally. No OCR.