technine.io

Tools

JSON to CSV Converter

Convert a flat JSON object, object array, row array or object-based JSON Lines into CSV or TSV in your browser with explicit column and nested-value handling.

Files and pasted data are processed in this browser. Their names and contents are not sent to a conversion server, added to the URL or stored in browser storage.

Source data

Drop a file here

One file up to 10 MB, or up to 1 MB of pasted UTF-8 text. Results may contain at most 100,000 records, 250 columns and 1,000,000 cells. JSON nesting is limited to 256 levels. Preview: 100 rows × 30 columns.

Input and shape settings
CSV / TSV output

This converter accepts JSON that has a clear table shape. For [{"id":1,"name":"Ada"},{"id":2,"email":"a@example.com"}], columns appear in first-seen key order as id, name, email; the missing email or name becomes an empty field. Nested objects and arrays are rejected unless you explicitly choose to store their compact JSON text in one cell.

How to use this tool

  1. Choose a JSON file up to 10,000,000 bytes or paste up to 1,000,000 UTF-8 bytes. Select JSON or JSON Lines parsing, then resolve any syntax, mixed-row or unsafe-integer error.
  2. Review the accepted shape: one flat object, an array of flat objects, an array of arrays, or JSON Lines with one object per non-empty line. Top-level primitives and mixed object/array rows are rejected.
  3. Choose how null and nested values are written, whether array rows receive generated column_N headers, and whether uneven array rows are padded. No extra cell is truncated.
  4. Choose comma, tab, semicolon or pipe output, UTF-8 BOM and CRLF or LF. Review formula-like values before preserving them or adding the optional single-quote prefix, then download the reparsed CSV or TSV.

Ways to use it

Open an API response as a table
Turn a flat array of objects into columns for spreadsheet review while keeping keys that appear only in later objects.
Export JSON records for an import
Create CSV or TSV with an explicit delimiter, line ending and BOM setting for a system that accepts tabular text.
Convert object-based JSON Lines
Read one object per non-empty line and build one table from the union of keys in first-seen order.
Preserve a nested value as text
When the destination accepts JSON text in a cell, explicitly serialize a nested object or array instead of flattening it silently.

Supported files and limits

  • Input and output use the same limits as the other CSV tools: 10,000,000 file bytes, 1,000,000 pasted UTF-8 bytes, 100,000 records, 250 columns, 1,000,000 cells, 1,000,000 decoded characters in one field and 50,000,000 output bytes. Preview shows at most 100 rows and 30 columns.
  • Accepted inputs are one flat object, an array of flat objects, an array of arrays, or JSON Lines containing one object per non-empty line. Top-level primitives, mixed row shapes and malformed JSON Lines are rejected.
  • Nested objects and arrays do not have one unambiguous CSV shape. They are rejected by default; storing compact JSON in a cell is optional and does not create separate nested columns.
  • Missing object properties become empty fields. null is empty by default or the text null when selected. CSV cannot reliably distinguish a missing value, null and an empty string after a round trip.
  • JSON object columns follow the union of keys in first-seen order. Duplicate JSON object keys are not preserved reliably by standard parsing, and decimal notation may be normalized.
  • Unquoted integers outside the JavaScript safe integer range are rejected because parsing could change their digits. Large identifiers should arrive as quoted strings.
  • Formula-like strings are preserved by default and may be interpreted by spreadsheet software. Optional single-quote prefixing changes the data and cannot guarantee safety in every spreadsheet.
  • The conversion runs in this browser without sending the file, pasted JSON, filename, keys or output to a conversion server. The downloaded CSV may still contain private or executable-looking content, so inspect it before sharing or opening elsewhere.

Common questions

What JSON shapes can be converted to CSV?

The tool accepts one flat object, an array of flat objects, an array of arrays, or JSON Lines with one object per non-empty line. It rejects top-level strings, numbers, booleans and null, as well as mixed object and array rows.

How are CSV columns chosen from JSON objects?

Columns are the union of object keys in the order each key first appears. A key introduced by a later object becomes a column, and earlier objects receive an empty field in that position.

What happens to nested objects and arrays?

They are rejected by default because there is no single correct way to flatten them. You may explicitly store a nested value as compact JSON text in one cell; the tool does not create dotted columns automatically.

Are null, missing keys and empty strings preserved separately?

Not by default. Missing keys and empty strings write an empty field, and null is also empty unless you choose the literal-null option. CSV does not retain the original JSON type distinction for an empty-looking cell.

Can array rows receive a header?

Yes, when you choose generated headers. The tool uses column_N names. Strict shape is the default; optional rectangularisation pads short rows and never truncates longer rows.

Why are some large JSON integers rejected?

JavaScript cannot represent every integer outside ±9,007,199,254,740,991 exactly. An unquoted integer outside that range is rejected before conversion; quote a large identifier in the source JSON if every digit must remain unchanged.

Is the downloaded CSV safe to open in a spreadsheet?

The tool warns about cells that begin like formulas and preserves them by default. Optional single-quote prefixing changes those values and may reduce risk in some software, but no output setting is a universal spreadsheet-safety guarantee.

Can I convert the CSV back to identical JSON?

No. CSV does not retain object order semantics, JSON value types, nested structure or the difference between every missing, null and empty value. Treat the CSV as a tabular export rather than a lossless backup.

ConsultWhatsApp