CSV ⇄ JSON
Type in either box — the other updates instantly. JSON must be a top-level array of objects.
Processed locally. Your data never leaves your browser.
Common questions
Does converting CSV to JSON preserve data types like numbers and booleans?
No — every CSV cell is plain text, so every JSON value produced is a string, even if it looks like a number ("42" stays "42", not 42). CSV itself has no type system to read a real type from.
What happens if my CSV has duplicate or blank column headers?
Handled automatically, not silently: a blank header becomes column_N (by position), and a repeated header gets _2, _3, and so on appended. Both are reported as a warning so you know exactly what changed.
What if a row has more or fewer fields than the header row?
It's still converted, with a warning: a short row gets its missing fields filled with empty strings, and a row with extra fields has those extras dropped rather than misaligning the rest of the columns.
Does JSON → CSV work with any JSON structure?
No — it requires a top-level array of plain objects, like [{"a": 1}, {"a": 2}]. A single object, an array of arrays, or an array of primitives is rejected with a clear error, since there would be no way to know what the CSV columns should be. A nested object or array inside a field is preserved as JSON text inside that cell, not flattened or dropped.