ToolConvoyToolConvoyv2.6
DATA

JSON to CSV — Convert JSON Arrays to CSV Spreadsheets

Convert JSON arrays of objects to CSV format. Handles nested flattening, semicolon delimiters, BOM prefixing — in your browser, no upload.

● LOCAL · ZERO-COPY PIPELINE0 network requests since page load

JSON is the native format of web APIs, and CSV is the lowest common denominator of data exchange between systems that were never designed to talk to each other. Every analytics pipeline, every spreadsheet, every database import wizard expects CSV, and every modern web service returns JSON by default. Converting between them is the first step in almost every data migration, and the conversion is deceptively nuanced because the two formats make fundamentally different assumptions about structure. JSON is tree-shaped: nested, recursive, arbitrarily deep. CSV is table-shaped: flat, uniform, and every row has the same columns. The converter bridges the two by choosing a flattening strategy — dot-notation for deep access, or top-level for quick export — and by surfacing the encoding details that most tools silently get wrong.

The three encoding details that matter most in practice: the UTF-8 byte-order-mark (three invisible bytes at the start of the file that tell Excel the text is UTF-8), the delimiter mismatch between the English-speaking world (commas) and the European world (semicolons, because commas are decimal marks), and the quoting protocol that protects values containing the delimiter character from being split mid-field. All three are configurable in the output options, and the defaults are chosen so the exported file opens correctly in the most common target: Excel on a Windows machine in a locale that uses commas as decimal separators.

After the conversion, the most common downstream step is to load the CSV into a database or visualization tool. If the destination is SQL, the companion CSV-to-INSERT converter can produce SQL statements directly. If the destination is a TypeScript or Python app, the JSON-to-TypeScript or JSON-to-Python converters are the right next step — they generate typed data models from the same JSON schema, so the API response and the CSV export share a single source of truth.

How to use

  1. Paste or drop your JSON

    Drop a JSON array of objects or paste a JSON string. The parser expects a top-level array — a bare object is accepted but emitted as a single-row CSV.

  2. Choose delimiter and encoding

    Toggle between comma (RFC 4180 standard), semicolon (European Excel default), or tab. Enable UTF-8 BOM for Excel to auto-detect encoding on open.

  3. Download the CSV

    The result is a downloadable .csv file. No size limit beyond your browser's memory — arrays of thousands of objects process in under a second.

Frequently asked

How does it handle nested JSON objects?

By default, nested objects are flattened with dot-notation column names: `user.profile.name` becomes a CSV column called `user.profile.name`. Toggle the flat-vs-nested switch to collapse to the top-level keys only when you don't need the nested data.

Will Excel open the resulting CSV correctly?

Yes, if the UTF-8 BOM option is enabled. Excel for Windows auto-detects UTF-8 when a BOM is present and renders accented characters, emoji, and non-Latin scripts correctly. Without the BOM, Excel may fall back to the system's ANSI code page and scramble non-ASCII text.

What happens to different data types?

All values are emitted as strings. A JSON `true` becomes the CSV string 'true', a `null` becomes an empty cell, and a number appears unquoted by default. Toggle 'quote all values' in the options for strict RFC 4180 compliance where every field is quoted.

Can it handle a JSON file larger than 50 MB?

The parsing is in-memory and limited only by the browser tab's available RAM. In practice files up to a few hundred MB convert without issue, but the UI may stall during parsing if the file is very large. Split the file with a command-line tool like jq before conversion.

Limitations

  • No type coercionAll output values are strings. If your JSON has ISO 8601 dates, they appear as-is in the CSV — the tool does not reformat them to Excel date serial numbers. Post-process in Excel or Google Sheets if you need formula-ready dates.
  • Heterogeneous arrays flatten unpredictablyIf array elements have different key sets, the CSV header is the union of all keys. Rows without a given key get an empty cell. This is correct CSV behavior but can produce sparse output for schema-less JSON.
  • No pivot or aggregationThe converter is a pure data-reshaping tool. It does not aggregate, pivot, or compute sums. Use the CSV output as input to a spreadsheet for analysis or aggregation.

Platform notes

macOS
Numbers.app on macOS opens CSV files with the correct encoding if the BOM is present. If you plan to edit the CSV in Numbers and re-export, make sure the export format is 'CSV UTF-8' to avoid encoding drift.
Windows
Excel for Windows is the primary motivation for the BOM option. Always enable BOM if the recipient uses Excel on a Windows machine with a non-English locale, or the characters beyond ASCII-127 will be mangled.
Linux
LibreOffice Calc opens UTF-8 CSV without a BOM. Use the tab delimiter for paste-compatibility with Google Sheets and web-based spreadsheets that prefer tab-separated input from clipboard.
Web
Runs entirely in the browser; no network round-trip. The conversion is a few milliseconds for typical API exports.

Related tools