Loading converter...

JSON to CSV Converter Online 2026 - Fast, Secure & Private

Convert JSON arrays to CSV format for spreadsheets and data analysis. 100% client-side privacy. Free online tool.

Key Features

  • Auto-flattening
  • Custom delimiters
  • Header generation
  • Large array support
  • Data type preservation

How to Use

  1. Paste your JSON array (objects must have consistent properties)
  2. Configure delimiter preference (comma, semicolon, tab, etc)
  3. Click Convert to generate CSV
  4. Preview the CSV output
  5. Review column headers from property names
  6. Adjust delimiter if needed and re-convert
  7. Download or copy the CSV
  8. Open in Excel, Google Sheets, or data analysis tools

Expert FAQ

  • My array has objects with different sets of properties — some have an "email" field, others don't. What happens to the missing ones?
    The header row is built from the union of every key across all objects in the array, and any object missing a given key gets an empty cell in that column rather than a misaligned row. This matters because a naive converter that only looks at the first object's keys will silently truncate or misalign columns for every later object that has extra fields.
  • What about nested objects or arrays inside each JSON object — like an "address": {"city": ..., "zip": ...} field?
    Nested objects are flattened into dot-notation columns (address.city, address.zip) so the data stays queryable in a spreadsheet rather than collapsing into one opaque cell. Arrays nested inside an object (e.g. a "tags" array) are serialized as a JSON string in a single cell instead, since CSV has no native way to represent a variable-length list within one row/column.
  • A field has a value like "=SUM(A1:A2)" or starts with "+1" — will opening the CSV in Excel execute it as a formula?
    This is a real risk known as CSV injection: Excel and Google Sheets both treat cell values starting with =, +, -, or @ as formulas by default, regardless of whether the source data was JSON. This converter prefixes such values to neutralize formula execution before they reach a cell, since exporting untrusted JSON straight to CSV without this protection is a known attack vector when the resulting file is later opened by someone else.
  • I have a large numeric ID like 9007199254740993 — will it still be exact after opening the CSV in Excel?
    The CSV output itself preserves the exact digits as text. The precision loss, if any, happens afterward inside Excel: Excel stores numeric-looking cells as IEEE 754 doubles, which only have 15-16 significant digits of precision, and will silently round or convert very large integers to scientific notation on open. If exact large IDs matter, format that column as Text in Excel after import, or keep the value as JSON for systems that need exact precision.

Technical Details

Converting a JSON array to CSV means deciding what to do with everything CSV's flat row/column model can't natively represent: inconsistent keys across objects, nested objects, nested arrays, and values that could be misinterpreted by spreadsheet software. The column header row is computed from the union of keys across every object in the array, not just the first one — a common bug in hand-rolled converters is sampling only the first record's shape, which silently drops or misaligns columns for objects with additional fields later in the array. Nested objects are flattened to dot-notation columns (address.city, address.zip) so the values remain individually queryable in a spreadsheet; nested arrays, which have no flat tabular equivalent, are serialized as a JSON string within a single cell instead of being expanded into extra rows (which would require either duplicating the parent row per array item or losing the the array's association with its parent — both are reasonable for some use cases, neither is universally correct, so this tool keeps the data, as a JSON string, recoverable rather than guessing). A security-relevant detail not specific to JSON but easy to overlook: any cell value beginning with =, +, -, or @ is treated as a formula by Excel and Google Sheets by default. If the source JSON includes user-generated text (a free-text "notes" field, for example) that happens to start with one of those characters, opening the resulting CSV can trigger formula execution — a well-documented class of vulnerability called CSV injection. This converter prefixes any such value to prevent it from being interpreted as a formula on open. For very large integers, note that any precision loss happens inside the spreadsheet application itself (which stores numbers as doubles), not in the CSV text the converter produces — the digits are written out exactly as given. Once exported, the CSV Validator can confirm the output is well-formed before you hand it off.