JSON to CSV without silent data loss
This converter is designed for API payloads, analytics exports, database dumps and JSON Lines—not just perfect flat demo arrays. It parses strict JSON with exact numeric lexemes, rejects duplicate keys, finds likely record arrays inside wrappers such as /data/items, builds a union of columns, then verifies the final CSV by parsing it back cell-for-cell.
Why the record finder matters
A response like {"meta": {...}, "data": {"customers": [...]}} should normally produce one CSV row per customer, not one huge row containing the entire document. Auto mode scores nested arrays and chooses the most record-like candidate. You can override it with any RFC 6901 JSON Pointer.
Nested objects and arrays
- Flatten objects turns nested keys into escaped dot paths such as
address.city. Literal dots in source keys are escaped, avoiding collisions. - JSON cells keep arrays intact and preserve row counts.
- Join scalar arrays is useful for tags. Complex arrays automatically fall back to JSON so objects are not silently destroyed.
- Indexed columns creates headers such as
tags[0] and tags[1].
Spreadsheet safety
CSV itself does not preserve types. Long integer tokens are kept exactly in the file, but Excel or another spreadsheet can still reinterpret them on import. Leading-zero strings are also flagged. Formula protection is enabled by default and prefixes formula-like string cells with an apostrophe so untrusted JSON cannot become an active spreadsheet formula.
Privacy and limits
Conversion, profiling, verification and ZIP creation happen in your browser. No JSON is sent to OneFreePlace. The tool enforces row/column safety limits to avoid accidental browser lockups. For multi-gigabyte streaming jobs, use a dedicated command-line or streaming ETL tool.
Keyboard
Ctrl + Enter converts. Ctrl + Shift + C copies the current CSV.
FAQ
Does it preserve 64-bit IDs?
The CSV text preserves the original JSON number token exactly, including integers beyond JavaScript's safe integer range. A spreadsheet may still coerce that text when opening the CSV, so the audit flags long integers.
What happens when different records have different keys?
The header is the union of all fields. Missing values become empty cells, so rows stay aligned.
Can I use semicolon CSV for European Excel?
Yes. Choose Semicolon as the delimiter and optionally enable UTF-8 BOM.
Why reject duplicate JSON keys?
Different parsers disagree about whether the first or last duplicate wins. Rejecting them prevents an ambiguous conversion.