JSON to CSV Converter
Convert a JSON array of objects to CSV, or paste CSV back to JSON, in your browser.
Runs entirely in your browser — nothing is sent to our servers.
How to use it
- Choose a direction: JSON → CSV or CSV → JSON.
- Paste your data on the left — a small sample is preloaded to try it out.
- Read the converted result on the right, or the error if the input isn't valid.
- Copy the result with the button above the output panel.
Input (JSON)
Output (CSV)
id,name,role
1,Ada Lovelace,Engineer
2,Grace Hopper,EngineerWhat is JSON to CSV conversion?
JSON is the shape APIs return; CSV is the shape spreadsheets and data-import tools want. Converting a JSON array of objects to CSV means picking a column for every key that appears anywhere in the array, and lining every object's values up under the right column — even if some objects are missing a field. Converting back means treating the first CSV row as headers and reading every value as a typed field.
The two formats aren't a clean round trip by nature — JSON has real nesting, arrays, booleans and null, while CSV is fundamentally a flat grid of text. Every JSON → CSV converter has to make a call about what happens to a nested object or array inside a field, and every CSV → JSON converter has to guess a type from a plain string. Knowing how this tool makes those calls matters more than the mechanics of the conversion itself.
Why use this tool
Both directions happen locally: no file uploads to a third-party converter, which matters when the data is a real export containing customer records. JSON → CSV collects the union of every object's keys as columns, quotes fields containing commas, quotes or newlines per RFC 4180, and serializes nested objects/arrays as inline JSON strings in their cell rather than silently dropping them or flattening them into columns you didn't ask for. CSV → JSON coerces numbers and true/false automatically, and everything else stays a string.
A common use is turning an API response into something a non-technical teammate can open in a spreadsheet — pulling a JSON array of user records or event logs and handing over a CSV instead of asking them to read JSON. The reverse direction shows up just as often: a CSV exported from a spreadsheet or another tool needs to become a JSON array to seed a test fixture, feed a script, or POST to an API that only accepts JSON bodies.
Common conversion gotchas
Mismatched keys across rows
Mismatched keys across objects are the most frequent surprise: if only one row in a hundred has an email field, that row still gets its own email column, and every other row gets a blank cell there rather than the column being dropped. That's usually what you want, but it means a single outlier record can add a column that looks empty for everything else — worth checking for before assuming your data export is missing a field.
Why did my leading zeros disappear?
Leading zeros are the classic CSV trap, and it happens after this tool, not during it: opening a converted CSV in Excel or Google Sheets, a value like "00042" gets auto-detected as the number 42 and silently loses its leading zeros the moment the file opens, even though the CSV text itself is correct. IDs, ZIP codes and phone numbers that carry meaningful leading zeros need to be treated as text on the spreadsheet side (or re-quoted) after conversion, not before.
Dates get reformatted by the spreadsheet, not by this tool
Dates have the same problem in reverse: a spreadsheet application will often reformat an ISO date string like 2026-03-05 into its own locale's date format the instant a CSV is opened, which is a spreadsheet-application behavior, not something this converter does — the JSON → CSV output preserves your date strings exactly as written.
Related tools
JSON Formatter
Format, minify and validate JSON, with auto-repair for common invalid JSON.
JSON Compare
Diff two JSON documents, path by path.
SQL Formatter
Indent queries with keyword casing options.
Case Converter
camelCase, snake_case, kebab-case, PascalCase and more, all at once.
Base64 Encoder / Decoder
Encode or decode Base64, including the URL-safe alphabet.
URL Encoder / Decoder
Percent-encode or decode a URL component.
UUID v4 Generator
Generate one or many cryptographically random UUID v4s.
Text Transform
Lines to a delimited list, and back.
Find & Replace
Regex, whole-word and case-sensitive search and replace, in place.
BIN Checker
Card issuer lookup from a BIN/IIN.
Temporary Email
A disposable inbox for live-testing incoming mail.
Webhook
Inspect live webhook deliveries.