Start with a tiny, inspectable file
Open the CSV / JSON Converter, select CSV to JSON and leave the header option enabled. Use invented sample data first. Compare the number of rows, the field names and the values before copying the output into another system. Successful parsing only establishes that the input fits the converter's rules.
The following cases come from our September 22, 2026 repairs and regression fixtures. They describe this tool's current behavior, not every CSV application. Our release checks run the real conversion functions with fixed expected results, and browser checks exercise the visible result and download controls.
1. A field called __proto__ is still a field
__proto__,constructor
x,yThe expected JSON is [{"__proto__":"x","constructor":"y"}]. In our previous implementation, assigning these headers into an ordinary JavaScript object could fail to preserve the __proto__ field. The repaired converter creates each row with Object.create(null), then serializes its own properties.
Check the output itself: seeing two columns in the source is insufficient. This case is in the automated regression suite. The language behavior behind the fix is documented by MDN's Object.create reference.
2. Duplicate headers need a decision
name,name
Alice,BobTwo columns with the same name cannot be represented as two distinct properties of one JSON object. Our converter rejects this input with a duplicate-column message. It also trims header whitespace, so name and name conflict. Empty headers receive a generated name such as col0; a collision with an existing name is rejected too.
Rename the columns according to what they mean, such as buyer_name and seller_name. Do not choose a name just to clear the error if you are importing into a schema that expects particular fields. A row with too many or too few fields is also rejected instead of silently dropping or filling cells.
3. A line break can belong inside a cell
name,note
A,"line 1
line ""2"""This is one data record. Its note contains a line break and the text line "2". Splitting the input at every newline would invent an extra row. Our fixture checks that the converter keeps the line break and unescapes the doubled quotation marks. Another fixture checks that spaces inside a quoted value remain intact.
RFC 4180 describes common CSV conventions for commas, quotes and line breaks; it is an informational description, not a guarantee that every exporter follows the same dialect. If the source uses semicolons or tabs, select the matching delimiter. Auto detection examines the first record and can be ambiguous for a single-column header or leading empty lines.
4. A round trip does not preserve every JSON type
[{"id":"0012","active":false,"note":null,"detail":{"x":1}}]Converting this JSON to CSV writes text cells. A return conversion keeps 0012 as a string, gives active the string value "false", and returns an empty string for the null note. The nested object is serialized into a cell; it does not automatically become an object again on the return trip.
Missing properties and null values both become empty CSV fields. That distinction cannot be reconstructed from this output alone. If types or missing-versus-null matter to your import, keep JSON as the source of truth or define a schema and an explicit restoration step. Our converter does not infer numbers, dates or booleans.
5. An error must invalidate the previous result
Convert a valid input, then replace it with an unclosed quoted field. The earlier result must disappear and Copy and Download must become unavailable. Otherwise it is easy to export yesterday's successful result while believing it belongs to the newly pasted text.
The current tool clears its result as soon as the input changes and reports conversion errors in a status area. It rejects malformed quotes and mixed JSON arrays such as an object followed by a number. The input limit is 2,000,000 characters; this browser utility is not a streaming importer for very large files.
Before using the converted file
- Compare row and column counts with your source, including an intentionally empty value.
- Check a leading-zero identifier, a non-English value and a quoted line break.
- Confirm how the receiving application treats text, dates, empty values and spreadsheet formulas.
- Keep the original file until the import has been checked in the destination system.
Conversion preserves text according to the rules above; it does not sanitize spreadsheet formulas. A cell beginning with a formula marker may be interpreted by spreadsheet software when opened. Use a text import mode and inspect untrusted files rather than assuming that valid CSV is safe to execute.
These cases are deliberately small enough to repeat. They establish specific behavior, not compatibility with every spreadsheet or CSV dialect. If a case fails, send the page address and a minimal non-sensitive example through our corrections page.