CSV to JSON: the conversion nobody should do by hand
Every data pipeline has the same quiet failure point: someone opens a CSV in Excel, squints at a column, and retypes it into JSON by hand. It works for five rows. On row two hundred, a missing comma or an unescaped quote silently corrupts a record, and you find out three weeks later when a dashboard number looks wrong.
Why CSV to JSON is never a copy-paste job
A CSV row looks like a JSON object, which is exactly why hand conversion feels safe. It is not. CSV has no types: everything is a string until you decide otherwise. 42 in a CSV is the two characters 4 and 2; in JSON it might need to be a number, and "42" might need to be a string. Decide per column, or downstream code that does strict comparisons will misbehave.
Quoting is the second trap. A field containing a comma must be wrapped in quotes; a field containing a quote must have that quote doubled. Excel and Google Sheets follow these rules slightly differently on export, especially with line breaks inside cells. A hand-written converter usually handles none of it. The CSV to JSON converter parses the file properly — including quoted fields — and emits typed output.
The header row decision
CSV-to-JSON converters ask one question people answer wrong: are the first row keys or data? If your CSV has no header, converting anyway produces objects with keys like column_1 — technically valid, useless downstream. Strip or supply a header first, then convert.
The reverse direction has its own subtlety. JSON can nest; CSV cannot. Converting nested JSON to CSV forces a flattening choice: do you join nested keys with dots (user.email), or skip nested objects entirely? The JSON to CSV converter flattens nested structures into dotted column names so nothing is silently dropped — dropping is what happens when someone hand-picks fields in Excel.
Encoding: the invisible third player
Half of broken CSV conversions are not CSV problems, they are encoding problems. A file saved as Windows-1251 or Latin-1 then parsed as UTF-8 turns every accented character into two garbage symbols. If your JSON output shows é where an é should be, fix the source encoding before blaming the delimiter.
A workflow that survives audits
Convert, then validate the round trip. Take ten random rows, convert back, compare. If a field changed, you learned about a type coercion or quoting bug before production did. Keep the original file immutable; never convert in place. And when the JSON side needs pretty-printing for humans to review, the JSON formatter shows structure clearly without touching values.
The rule: CSV is for humans and spreadsheets, JSON is for programs, and the conversion between them is mechanical enough that no one should ever do it by hand. Run it through a parser that knows the format edge cases, verify a sample, and move on.