Changing a file extension does not convert CSV and JSON. Start with headers, delimiters and data types, then compare a few sample records before processing the full dataset.
The CSV ⇄ JSON converter accepts pasted text. CSV becomes an array of objects with string values; JSON becomes a table. Conversion runs inside the browser.
What the current converter preserves or changes
| Input | Output behavior | What to check |
|---|---|---|
| CSV 00123 | JSON string “00123” | Zeros already removed by another program cannot be recovered |
| CSV 12.5, true, empty cell | “12.5”, “true”, “” | No automatic numeric, boolean or null inference |
| JSON null, missing key, empty string | All become empty CSV cells | Define a separate column or representation if distinctions matter |
| Nested arrays and objects | Converted to strings, losing structure | Flatten into explicit rows and columns first |
| Long numeric JSON IDs | Precision can be lost while parsing | Quote IDs as strings in the original JSON |
| Repeated CSV headers | Later cells overwrite the same key | Use unique, nonempty column names |
| More cells than headers | Extra cells have no output keys | Make column counts consistent |
See RFC 4180 for common CSV quoting rules and RFC 8259 for JSON values and numeric interoperability. This converter is not an automatic data-integrity auditor.
Example 1: leading zeros, commas and quotes
Choose CSV → JSON, the comma delimiter and Header row. Paste this and select Convert:
id,name,note
00123,Taro,"Tokyo,Osaka"
00456,Hana,"He said ""Hi"""
Expected data:
[
{ "id": "00123", "name": "Taro", "note": "Tokyo,Osaka" },
{ "id": "00456", "name": "Hana", "note": "He said \"Hi\"" }
]
Check two records and three keys per record. A comma inside a quoted cell is content, not another column. Double quotes inside CSV fields are doubled; JSON represents embedded quotes with a backslash. The ID remains a string with its zeros.
Quoted fields can contain newlines, so the number of visible text lines is not always the record count. Without a header row, disable that option and check the generated column1, column2… keys.
Example 2: a round trip loses type distinctions
Switch to JSON → CSV and paste:
[
{ "id": "00123", "score": 12.5, "note": null },
{ "id": "00456", "score": 0, "note": "" }
]
The comma-separated output is:
id,score,note
00123,12.5,
00456,0,
Converting back produces strings for score and empty strings for both note fields. It cannot restore which note was null. The union of object keys becomes the columns; missing keys also become empty cells.
Long IDs and nested JSON
A numeric ID outside JavaScript’s exact integer range can change during parsing. Enter an ID such as “9007199254740993” as a string. Turning an already rounded number into a string afterward cannot recover it.
Flatten nested fields such as {"address":{"city":"Tokyo"}} into explicit columns like address_city first. This converter does not flatten objects automatically; a nested object can become [object Object].
From a sample to a download
- Retain the original and prepare a small nonconfidential sample. Use unique, nonempty, simple header names without delimiters, quotes or newlines.
- Open the converter, choose direction and comma, tab or semicolon. The header checkbox applies to CSV → JSON; JSON → CSV always writes column names.
- Compare record count, column count, IDs and blank values in Output. Copy or download the result, then check a few records again in the receiving application.
Try the two sample records
Check that 00123 and embedded quotes survive
CSV values become JSON strings. Verify records and headers before downloading.
Check these limits even when no error appears
- This is not an encoding converter. Reopen incorrectly decoded source files with the correct encoding rather than pasting mojibake.
- Downloads use UTF-8 and CSV uses LF line breaks. There is no UTF-8 BOM option. Set encoding and column types in the spreadsheet import dialog.
- Leading/trailing whitespace around the entire input is trimmed; entirely empty rows are skipped. Do not use this workflow to preserve meaningful blank-row positions or edge whitespace.
- The parser is not a strict validator for every malformed quote or CSV dialect. No error does not prove complete preservation.
- OWASP’s CSV Injection guidance explains how untrusted cells starting with characters such as
=can become spreadsheet formulas. Quoting alone is not a defense. Check the source and import method; this tool does not neutralize formulas.
Frequently asked questions
How many rows can it handle?
Capacity and processing time depend on the browser, device, column count and content. There is no guaranteed row count. Test a small sample, split larger data when necessary and keep the original.
How can I check JSON syntax?
Use the JSON formatter. Valid JSON can still be unsuitable for this table conversion: use a flat array of row objects.
How can I return for the next data update?
Add the converter to favorites and open it from My Tools on the same browser. It does not retain converted data. Record direction, delimiter and column rules in your own notes, and paste from the original again.
Verification scope
On 24 October 2026, RFC and OWASP guidance was compared with the current parser and the string, null, quoting and leading-zero examples. Automatic flattening, complete type preservation, formula-injection protection and compliance with every CSV dialect are outside scope. See the text comparison guide for checking textual changes.