Practical guide

Export JSON records to CSV without losing nested data

Turn JSON objects into consistent CSV columns, choose how nested values are represented, and protect spreadsheet users from formula-like text.

Start with the record shape

Open the JSON to CSV Converter and paste a single object or a non-empty array of objects. For example, [{"id":"0012","name":"Ada"},{"id":"0013","name":"Grace","city":"London"}] produces id, name, and city columns; Ada's missing city becomes an empty cell. The tool gathers column names from every record in first-seen order.

Choose how to handle nested values

In JSON text mode, a value such as {"city":"Paris"} remains JSON text in one address cell. In flatten mode, address.city becomes a separate column. Arrays stay JSON text because expanding variable-length lists into columns can create unstable headers. A literal dotted key that conflicts with a flattened path produces an error so data is not silently overwritten.

Check quoted cells and line endings

CSV uses commas between fields. If a value contains a comma, quote, or line break, the converter encloses it in double quotes and doubles any embedded quotes. Records are joined with CRLF line endings. Copy the result for an import script, or download converted.csv for a spreadsheet or other program.

Protect spreadsheet users from formulas

A string like =2+3 can be interpreted by spreadsheet software instead of displayed as text. Formula protection is enabled by default and prefixes formula-like text with an apostrophe. This intentionally changes the CSV text. Turn it off for a trusted machine-to-machine round trip, and do not open untrusted exports in a spreadsheet without reviewing them.

Keep leading-zero identifiers as text

The JSON string "0012" stays 0012 in the CSV file. CSV does not carry a text-column schema, so Excel or another spreadsheet may turn it into the number 12 on import. Use the spreadsheet's text-import setting for ID, ZIP, account, and similar fields. The optional UTF-8 BOM applies to the downloaded file, not the copied text.

Know the limits and verify the result

The browser handles up to 1 MB of JSON, 10,000 records, and 500 columns. Null and missing properties both become empty cells, which is a deliberate information loss in tabular CSV. Conversion stays on your device. Inspect the first and last rows, nested fields, quote-heavy cells, and intended destination before relying on the export.

Try JSON to CSV Converter →