JSON ↔ CSV Converter
Convert JSON arrays to CSV and CSV back to JSON in your browser. Handles nested objects, custom delimiters, and header rows. No server required.
JSON ↔ CSV Converter
Runs entirely in your browser — no server calls, no tracking.
Paste data and click Convert.
🔒 Your data never leaves this tab. This tool has no backend.
About the JSON ↔ CSV Converter
JSON and CSV are the two most common data interchange formats in web development. JSON is preferred for APIs (nested objects, arrays, typed values), while CSV is preferred for spreadsheets, database exports, and bulk import tools. This converter handles both directions: JSON array to CSV with proper quoting and escape, and CSV back to a JSON array using the header row as keys.
JSON to CSV rules
Only flat JSON arrays are supported (arrays of objects with consistent keys). Nested objects are stringified into the cell value. Values containing the delimiter, quotes, or newlines are automatically wrapped in double quotes per RFC 4180. Missing keys in a row output an empty string for that column.
CSV to JSON rules
The first row is used as property names (headers). All values are treated as strings — the converter does not attempt type inference for numbers and booleans (this avoids incorrectly converting strings like "001" or "true" that should remain as strings). If you need typed values, use the JSON output as a starting point and parse numbers in your application.
The semicolon delimiter option is useful for European locales where comma is the decimal separator (e.g. Excel defaults to semicolons in German, French, and Dutch regional settings). Tab-delimited is the TSV format, often used in data science pipelines and Google Sheets exports.
Converting CSV to JSON, and JSON back to CSV
The two directions are not symmetrical, and knowing where each one loses information saves a lot of debugging.
CSV to JSON
The header row becomes the object keys and each subsequent row becomes one object in an array. The catch is that CSV has no types — every cell is text. A column of 1,2,3 could be numbers or strings, and true could be a boolean or the word. This converter infers the obvious cases and leaves ambiguous ones as strings, which is the safe default.
JSON to CSV
This works cleanly on an array of flat objects with consistent keys. Nesting is the problem: CSV is a grid and has no way to express an object inside a cell. Nested values are flattened into dotted column names such as address.city, and arrays are joined, because the alternative is silently dropping data.
The details that break conversions
- Commas inside values — must be quoted, or the row gains a column.
- Quotes inside values — doubled in CSV (
""), backslash-escaped in JSON. - Line breaks inside a cell — legal in quoted CSV; naive line-splitting corrupts them.
- Leading zeros — postcodes and IDs lose them if treated as numbers. Keep those columns as strings.
- Encoding — save as UTF-8; anything else mangles accented characters and symbols.
Everything converts in your browser, so spreadsheets containing customer data never leave your device.
Frequently asked questions
Paste or upload the CSV above and the converter turns the header row into object keys, producing one JSON object per data row. Because CSV has no types, numeric and boolean-looking values are inferred where unambiguous and left as strings otherwise, which avoids corrupting IDs and postcodes with leading zeros.
Because a value like 01234 was read as a number rather than text. Postcodes, phone numbers, account references and product codes should stay as strings. This converter leaves ambiguous values as strings by default for exactly this reason.
CSV is a flat grid with no way to hold an object inside a cell, so nested values are flattened into dotted column names such as address.city, and arrays are joined into a single cell. The alternative would be silently dropping data. If your structure is deeply nested, CSV may not be the right target format.
With this tool, yes — conversion happens entirely in your browser and no file is ever uploaded to a server. That is worth checking with any converter, since CSV exports routinely contain names, email addresses and order histories.
""). This ensures the CSV parses correctly in Excel, Google Sheets, and any standards-compliant parser regardless of the cell content.[{"key1":"val1","key2":"val2"}].jq locally or a dedicated ETL tool.csvkit, jq, pandas) handles large volumes much faster.Need data pipeline or ETL tooling built?
ruxox builds custom data ingestion, transformation, and reporting tools for growing businesses. Free estimate in 48 hours.