JSON to CSV
Converts JSON objects to CSV and CSV back to JSON in the browser. Nested values become JSON text in a cell. This is a formatter only: not a database, not Excel, and not a guarantee that every locale will open the file in a spreadsheet.
JSON to CSV
Client-side only. Input is not sent to a server. This is a formatter, not a database, not Excel, and not a guarantee that every locale will open the file in a spreadsheet. CSV to JSON is this same page.
How to use
- Choose JSON → CSV or CSV → JSON. Both directions live on this URL. There is no /csv-to-json/ page.
- Paste text in the box. Empty or whitespace-only input fails closed. JSON must be an object or a non-empty array of objects.
- Read the result as text and copy it on this device. Nested JSON values are stringified into a CSV cell. CSV numbers stay strings.
- Nothing is sent to a server. Refreshing the page clears the form.
Results
Paste JSON to convert to CSV.
Runs in your browser. Nothing is uploaded.
Frequently asked questions
Is csv to json a different page?
No. JSON to CSV and CSV to JSON share this same page at /json-to-csv/. There is no /csv-to-json/ URL. Switch the mode on this page.
What does this JSON to CSV converter produce?
It is a formatter. JSON → CSV turns an object or an array of objects into comma-separated text with a header row. CSV → JSON turns that table back into a 2-space JSON array of objects. Output is plain text you can copy. This is not a database, not Excel, not a data warehouse, and not a guarantee that every locale will open the file in a spreadsheet.
What JSON shape is accepted?
An array of objects is preferred. A single object is treated as a one-row array. The header row is the union of each object's own enumerable keys, in the order they are first seen. Nested objects and arrays are JSON.stringify-ed into a single cell. null and missing values become empty cells. A bare number, string, boolean, null, or an empty array fails closed.
How is CSV parsed and escaped?
CSV uses a comma separator. Fields that contain a comma, a double quote, a newline, or a carriage return are wrapped in double quotes, and any quote inside a field is doubled. CSV → JSON treats the first row as headers and later rows as objects. Cell values stay strings; numbers are not coerced. A header-only paste with no data rows yields an empty JSON array. An unclosed quote fails closed.
Is this client-side? Do I need an account?
Yes, it is client-side only. There is no signup. JSON and CSV never leave the browser. Tallymill does not save what you paste. Refreshing the page clears the form.
Is there a size limit?
Yes. Input larger than 100KB (100 × 1024 UTF-8 bytes) is rejected. Empty or whitespace-only input also fails closed. Nothing is sent to a server either way.