JSON ↔ CSV Converter
JSON ToolsConvert a JSON array of objects to CSV, or CSV back to JSON
JSON (array of objects)
CSV
name,role,tags Ada,Engineer,backend;rust Bob,Lead,frontend
Nested objects flatten to dot-notation columns (e.g. address.city); arrays of primitives join with ";" — CSV has no native way to represent either, so round-tripping back to JSON won't perfectly restore the original shape.
About the JSON ↔ CSV Converter
Convert a JSON array of objects into a CSV table, or a CSV file back into JSON — a proper RFC 4180 parser handles quoted fields with embedded commas and newlines correctly, not a naive comma split.
This is the shape of conversion that comes up constantly around spreadsheets: exporting a JSON API response so a non-technical teammate can open it in Excel or Google Sheets, or importing a CSV export back into JSON for a script or seed file. Nested objects flatten into readable dot-notation columns instead of dropping data silently.
How to Use the JSON ↔ CSV Converter
Choose a direction — JSON to CSV, or CSV to JSON.
Paste an array of objects (for JSON→CSV) or a CSV table with a header row (for CSV→JSON).
Copy the converted result — nested fields appear as dot-notation columns in the CSV direction.
Frequently Asked Questions
Is my data uploaded anywhere?
No. Both directions are plain JavaScript string/array processing — nothing you paste is sent to a server.
What does the JSON need to look like for JSON → CSV?
An array of objects works best — each object becomes one row. A single object is treated as one row. Nested objects flatten into dot-notation columns (address.city), and arrays of plain values join with ";" since CSV has no native nested structure.
Does converting CSV → JSON → CSV round-trip perfectly?
CSV → JSON does, since it just reverses the dot-notation flattening. JSON → CSV → JSON doesn't for fields that were arrays or deeply nested objects — CSV can't represent those natively, so some structure is necessarily lost.
How are quoted fields and embedded commas handled?
Per RFC 4180: a field containing a comma, quote, or newline is expected to be wrapped in double quotes, with internal quotes doubled. The parser follows that spec rather than a naive split on commas, so a value like "Smith, John" in a quoted field is read correctly as one field, not two.