OneFreePlaceTools / Developer Tools / #335
Tool #335100% localLossless numbersSpreadsheet-safe

JSON to CSV

Turn real API responses, nested JSON and JSON Lines into verified spreadsheet-ready CSV. Auto-find record arrays, flatten without silent key collisions, preserve exact numeric tokens, neutralize formula injection and batch-convert files without uploading anything.

Local → CSVStrict parse · exact serializer · self-verified output
JSON input
0 B
Drop one or many .json / .jsonl / .ndjson files here, or
Verified CSV
Waiting for JSON
Input—
CSV output—
Records—
Columns—
Record path—
Long integers—
Formulas protected—

Conversion integrity

The result is not trusted until the generated CSV is parsed again and every emitted cell matches the intended table.

✓
Strict JSONWaiting for input
✓
Record shapingRecord source not selected
✓
Round-trip CSVCSV round-trip check pending
✓
Private by designEverything runs locally in this tab

Spreadsheet risk audit

CSV has no native data types. These checks surface values spreadsheets commonly reinterpret.

No conversion yet

Column profiler

Convert JSON to inspect coverage and data shapes before download.

ColumnCoverageNumberStringBoolJSON/ArrayEmpty

Batch conversion

No batch running.

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.