Convert JSON to CSV and CSV back to JSON — with proper quoting and type coercion.
Convert a JSON array of objects into CSV, or a CSV table back into JSON. Cells with commas, quotes, and newlines are correctly quoted; CSV values are coerced to numbers, booleans, and null where unambiguous. Round-trips cleanly. Runs in your browser.
Upload your file using the tool above.
Adjust any settings to your preference.
Click the process button and wait for results.
Download your output using the download button.
CSV is flat, so nesting has to be flattened — nested keys become dotted column names like address.city. Arrays of varying length are the harder case, since a clean tabular shape does not exist for them. Deeply nested data usually converts better if you reshape it into records first.
Any value containing a comma, quote or line break is wrapped in double quotes, and internal quotes are doubled, per RFC 4180. This is exactly where hand-rolled exports break — a single address field with a comma silently shifts every subsequent column, corrupting the file in a way that is easy to miss.
Structurally yes, but types are the caveat. CSV has no type system — everything is text — so on the way back, numbers and booleans are inferred. Values like leading-zero postcodes, long ID numbers and anything that looks like a date are where round trips most often lose fidelity.
Yes, JSON to CSV Converter is completely free. No signup, no account, and no watermark on outputs. A Pro tier is available for 100 AI ops/day and larger file sizes.
JSON to CSV Converter runs entirely in your browser. Your file is never uploaded — it is read, processed and saved locally, so it never reaches our servers or anyone else's. You can disconnect from the internet after the page loads and it still works.
JSON → CSV: Give it an array of objects and it builds a CSV whose header is the union of all keys. Cells containing commas, quotes, or newlines are correctly quoted, and nested objects/arrays are serialised as JSON.
CSV → JSON: The first row becomes the keys. Values that are clearly numbers, true/false, or null are converted to real JSON types; anything ambiguous (like 007) stays a string.
Round-trips: Convert one way, hit Swap, and convert back — your data comes through intact.
Privacy: Runs entirely in your browser. Your data is never uploaded, so it’s safe for sensitive datasets and works offline.