CSV and JSON are the two most common formats for moving data: CSV rules spreadsheets and exports, and JSON is the language of APIs and applications. Knowing how to convert between them without corrupting the data is a basic skill for any developer or analyst. This guide covers the cases that almost always break.
The fundamental differences
- CSV (Comma-Separated Values) is a flat table: rows and columns separated by commas, with a first header row. It has no types: everything is text.
- JSON (JavaScript Object Notation) is hierarchical: objects with keys and typed values (numbers, booleans, null, arrays, nested objects).
Converting between them is straightforward when the JSON is an array of flat objects, but it has traps.
CSV → JSON: the details that matter
A naive conversion that only does split(",") fails the moment a real case appears. Here's what a good converter must handle:
Commas inside fields
name,city
"Ana, Maria",Madrid
The first field contains a comma, which is why it's quoted. Splitting on commas blindly would break this row. The parser must respect the quotes.
Escaped quotes
product,note
Keyboard,"Says ""perfect"" in the review"
Two double quotes in a row inside a quoted field represent a literal quote. They must be interpreted, not copied.
Line breaks inside a field
A quoted field can contain line breaks. The parser can't assume each line of the file is a row.
Type detection
When converting to JSON, values that are numbers should become number type, not stay as text:
[{ "name": "Ana", "age": 30 }]
Notice 30 has no quotes: it's a number. A good converter detects this automatically.
JSON → CSV: flattening the structure
The reverse path turns an array of objects into a table. Keys become headers and each object becomes a row:
[
{ "name": "Ana", "age": 30 },
{ "name": "Luis", "age": 25 }
]
becomes:
name,age
Ana,30
Luis,25
The challenge here is the inverse: any value containing commas, quotes or line breaks must be quoted and escaped correctly so the resulting CSV is valid.
How to convert CSV and JSON for free
- Choose the direction (CSV → JSON or JSON → CSV).
- Paste your data into the input box.
- Convert: the tool detects numbers and respects quotes, commas and line breaks.
- Copy the result or download it as
.jsonor.csv.
You can do it for free with the CSV ↔ JSON converter, which processes everything in your browser: your data is never uploaded to any server.
Why convert in the browser
The data you convert is often sensitive: customer exports, internal records, tables with personal information. A tool that processes everything locally guarantees that data never leaves your machine. It's also instant, with no upload waits or server-imposed size limits.
Common mistakes and how to avoid them
- Duplicate or empty headers: make sure the first CSV row has unique names.
- Non-flat JSON: if your objects have nested objects, CSV can't represent them directly; flatten them first.
- Separator other than comma: some CSVs use semicolons (common in Spanish regional Excel settings). Check the separator before converting.
- Encoding: use UTF-8 so you don't lose accents or special characters.
Frequently asked questions
Is my data uploaded to a server? No, if you use a tool that processes in the browser. All conversion is local.
Does it support fields with commas and line breaks? A good parser does, as long as those fields are quoted per the CSV standard.
Does it convert numbers automatically? When going from CSV to JSON, numeric values are converted to number type; the rest stays as text.
What structure should the JSON have? An array of flat objects, for example [{"name":"Ana","age":30}].
Convert your data both ways, respecting quotes, commas and types, with the free CSV ↔ JSON converter, 100% in your browser.