Convert CSV to JSON
Choose JSON (array) under Convert format. The header row becomes the object keys and every
data row becomes one object, so id,name with a row 1,Ana produces
[{"id":"1","name":"Ana"}].
Everything comes out as a string
This is deliberate and it is the part that surprises people. CSV has no type system — a column of
digits is just characters, and there is no way to know whether 007 is the number seven
or an agent, or whether 1.10 is a version number that must keep its trailing zero.
Guessing corrupts data silently, so nothing is coerced. Cast the fields you know the types of in
whatever consumes the JSON.
Expect the file to get bigger
JSON repeats every key on every record, so a CSV that stores a column name once now stores it a million times. A 100 MB CSV commonly becomes 300–500 MB of JSON. If the output is going into a pipeline rather than a human's editor, NDJSON is the better choice — same data, streamable, and it does not have to be parsed all at once.
Nested structures
CSV is flat, so the output is flat. If you need nested objects — address.city becoming
a real sub-object — do that transformation after conversion, in code. A column literally named
address.city stays a key with a dot in it.
Trimming before you convert
Because JSON inflates so much, it is worth dropping the columns you do not need first. On a wide export that often cuts the output size by more than half.
Common questions
Why are my numbers quoted as strings? CSV carries no type information, so coercing values would risk corrupting identifiers, leading zeros and version numbers. Cast the fields you know downstream.
What happens to empty cells? They become empty strings rather than null, matching what the file actually contains.
Is there a size limit? Conversion holds the parsed rows in memory, so very large files are bounded by RAM. For files in the hundreds of megabytes use NDJSON or split first.