Skip to main content
OS Authority

Convert JSON to CSV in your browser

Paste an array of flat JSON objects, choose a delimiter and turn each object into a spreadsheet row. Preview the first 50 rows before copying or downloading the complete CSV.

Conversion runs in a worker in your browser tab. Your input and output are not uploaded or included in analytics, and this tool does not save them between visits.

How it works

  1. Paste a nonempty JSON array whose objects contain strings, numbers, booleans or null. Nested objects and arrays are not supported.
  2. Choose comma, semicolon, tab or pipe, then select Convert to CSV.
  3. Check the column names and preview. Copy or download the complete result, then import it into your spreadsheet using the same delimiter.

How objects become rows and columns

Suppose the first object has name Ada and score 12, while the second has name Sam and active true. The result has three columns: name, score and active. Columns follow the first appearance of each key as JavaScript reads the objects; integer-like keys follow JavaScript's numeric-key order. A key missing from a row and a null value both become empty cells. False becomes false and zero becomes 0. An empty array or a set of objects with no keys is rejected.

Quoting and spreadsheet formula protection

Every field, including column names, is double-quoted. Double quotes within a field are doubled, and embedded line breaks remain inside that field. CSV records use CRLF line endings. Formula-looking string values and headers receive a leading apostrophe; numeric negative values remain numbers. This changes those string values deliberately and reduces formula-execution risk when opening the result in a spreadsheet. Spreadsheet import behavior varies, so review untrusted data before using or sharing it.

Numbers, repeated keys and flat data

This converter parses JSON using JavaScript number semantics. Nonfinite values and integer values outside the safe range −9,007,199,254,740,991 to 9,007,199,254,740,991 are rejected. Put long identifiers or exact decimal amounts in JSON strings to preserve their spelling. Decimal numbers can be rounded and numeric notation can change during conversion. Repeated object keys keep their last value. Nested values are rejected rather than flattened or silently discarded. This page does not accept JSON Lines or generate XLSX workbooks.

Previews and processing limits

The preview shows the header and up to 50 data rows. Copy and Download CSV include every row within the displayed input and item limits and the device's UTF-8 output limit. The item budget bounds both JSON tokens and the complete rectangular table, including empty cells. Processing runs in a cancellable worker; editing the input or delimiter clears the old result.

Frequently asked questions

Can I convert nested JSON?

No. Use an array of flat objects containing scalar values or null. Nested objects and arrays produce an error so you can reshape the data explicitly before converting.

Why is there an apostrophe before some values?

It is spreadsheet formula protection. A formula-looking string or header is prefixed with an apostrophe before CSV quoting. The added character can remain visible depending on how your spreadsheet imports CSV.

Can I open the result in Excel or Google Sheets?

Yes. Import the downloaded CSV as UTF-8 text and choose the delimiter used here. CSV contains rows and cells; it does not retain workbook formatting, formulas, multiple sheets or data types.

Are missing fields different from null?

Both become an empty CSV cell. If that distinction matters, replace missing fields or null with an explicit string in your source JSON first.

Sources

Last reviewed: November 7, 2026

Related tools