Short answer: JSON → CSV flattens an array of objects into columns; CSV → JSON turns rows back into objects using the header. Commas, quotes and newlines inside a field are handled by the standard quoting rules — the thing naive converters get wrong.
The quoting rules that matter
RFC 4180 says a field may be quoted, a quote inside a quoted field is written twice, and a line break inside quotes belongs to the field. That is why a split-on-comma parser turns"Smith, J" into two cells and shifts every later column. This converter quotes only the fields that need it, so the output stays readable in a spreadsheet.
Rules this converter enforces
- A JSON root that is not an array of objects is refused — a table needs rows and columns.
- Ragged CSV rows are reported with their number, not silently padded or dropped.
- Duplicate header names stop the conversion, because one would overwrite the other in JSON.
- An unterminated quote is an error with the line it started on, not a merged last row.
- Nested values keep their JSON text in the cell, visibly, rather than collapsing to a string.
Need to tidy the JSON first? The JSON formatter sorts keys and shows the exact line of a syntax error. To compare two exports, use thetext diff.