Move tabular data between CSV and JSON without installing anything. Preserve text values, inspect a small preview and choose how to handle formula-like cells before a spreadsheet export.
Off by default to preserve raw values. When enabled for JSON → CSV, risky text cells and headers receive a leading apostrophe. This changes the data and reduces formula risk; it does not guarantee safety in every spreadsheet app.
Conversion and file reading happen on your device. This tool does not upload or save your data. Refreshing or switching languages clears it. The site uses Google Analytics for page visits.
02 / Converted result
Text boxes may display or copy normalized LF line breaks. Use Download for the exact generated result.
Source data preview
The preview shows original values. The result box and download include any spreadsheet prefixes you selected.
How to convert
Choose CSV → JSON or JSON → CSV. Paste text or select a UTF-8 file.
For CSV, select the delimiter used by your file. The first nonempty record must contain unique, nonblank column names.
Click Convert, review errors or the preview, then copy or download the result. For spreadsheet exports, review the formula-prefix option.
CSV input rules
Quoted fields can contain delimiters and line breaks. Double a quote inside a quoted field. Comma, semicolon and tab are supported; choose explicitly instead of guessing. CRLF, LF and CR line endings are accepted. Physically empty lines outside quotes are skipped; whitespace-only lines, quoted empty fields and delimiter-only rows are retained. All data rows must match the header width.
Will IDs and empty values change?
CSV → JSON keeps every value as a string: 001 stays "001", an empty cell becomes "", and true stays "true". There is no automatic numeric or date conversion. A leading UTF-8 BOM is removed. Header spaces are preserved; names that are entirely blank or exact duplicates are rejected.
Which JSON shapes are supported?
Use a nonempty array of flat objects. Values may be strings, finite numbers, booleans or null. Columns are the union of keys across rows. Nested arrays or objects are rejected; this tool does not flatten them or guess a schema. JSON is parsed by your browser: duplicate keys retain the last value. Avoid duplicate keys and quote long identifiers. Unsafe integer values are rejected; other numbers follow JavaScript numeric precision.
Can I round-trip without losing types?
CSV has no built-in types. JSON null and missing properties both export as empty cells; numbers and booleans become text. Returning to JSON will therefore produce strings, not the original types. For exact IDs and dates, use strings. Empty cells are quoted on export so single-column empty records survive re-import.
Why does spreadsheet export need care?
Spreadsheet apps may treat cells starting with =, +, -, @, tabs or line breaks as formulas. Ordinary CSV quoting does not remove that risk. The prefix option adds an apostrophe to matching text values and headers, including formulas after leading whitespace, and reports how many cells changed. Numeric negative values are not text and remain unchanged. Keep the option off for raw data interchange, or enable it for spreadsheet review and verify the result before use.
File encoding and limits
Files must be UTF-8 text. If an older spreadsheet export fails to read, save it again as CSV UTF-8. Uploaded file line endings are preserved until you edit the input. Pasted or edited textarea content may normalize line endings to LF. Downloads are UTF-8 without a BOM; CSV uses CRLF record separators. These limits keep small and medium datasets manageable in a browser. No partial conversion is returned when a limit or validation error is found.