Convert a JSON array of objects to CSV instantly. Headers are auto-detected from your JSON keys, with a choice of comma, semicolon, or tab delimiter — download the result as a .csv file.
JSON is the native format of nearly every modern API and JavaScript application, but it's rarely the format a non-technical stakeholder wants to open — a product manager, a sales team, or a finance department almost always prefers a spreadsheet they can sort, filter, and share as a CSV or Excel file. Converting a JSON API response or database export into CSV is one of the most common bridges between 'data a developer works with' and 'data a business user can actually consume,' and it comes up constantly: exporting a report from an internal tool, preparing data for a bulk import into another system, or handing off a dataset to someone whose primary tool is a spreadsheet.
Doing this conversion correctly requires more care than it might seem — deciding which keys become columns, handling records with inconsistent fields, correctly quoting values that contain the delimiter itself, and picking a delimiter that matches the destination system's expectations. A dedicated converter handles all of this consistently, rather than requiring a one-off script every time the need comes up.
Since JSON objects don't enforce a fixed schema the way a database table does, two objects in the same array can technically have different sets of keys — one record might have an optional 'discount' field that most others lack, for instance. This tool handles that by scanning every object in your array and building the column list from the union of all keys encountered, in first-appearance order, rather than assuming every object looks like the first one (a common but fragile shortcut some simpler converters take).
This approach means no data is silently dropped just because it appears in a less common field — every key that shows up anywhere in your array gets its own column, and any object that doesn't have a value for that particular column simply gets an empty cell there. It's a small but important difference from naively using only the first object's keys, which would silently omit any field that first object happened not to include.
Converting from JSON to CSV is inherently a move from a more expressive format to a more restrictive one, so it's worth understanding what CSV simply can't represent. JSON's native data types — numbers, booleans, null, nested objects, and arrays — all have to be flattened into plain text cells in CSV, which has no concept of a data type beyond 'text in a cell' (a spreadsheet application may reinterpret that text as a number or date when it opens the file, but the CSV format itself doesn't encode that distinction). Nested objects and arrays specifically can't be represented in their original structured form at all; this tool preserves them as their JSON string representation in the cell rather than silently discarding them, but recovering that nested structure afterward requires parsing that string back out.
This is precisely the reverse of the CSV-to-JSON direction, which is comparatively lossless since a flat table maps cleanly onto a flat array of objects. If your JSON has meaningfully nested data you need preserved in a genuinely tabular form, you'll typically need to flatten it deliberately first — deciding, for instance, whether a nested address object should become separate address_street, address_city columns, or a single JSON-string column — since there's no universally correct way to make that decision automatically for arbitrary data.
Comma-separated values are the de facto standard and the safest default choice for most audiences and tools, particularly in English-speaking locales where the comma isn't already claimed as a decimal separator. Semicolon-delimited CSV is the practical standard in many European locales, where Excel's regional settings use a comma for decimal numbers and therefore expects semicolons to separate fields instead — sending a comma-delimited file to a colleague with those regional settings can result in Excel misinterpreting the entire file as a single column.
Tab-delimited output sidesteps delimiter-collision concerns almost entirely, since actual tab characters are rare inside real-world text values (unlike commas, which show up constantly in addresses, names, and descriptions), making TSV a pragmatic choice when you want to minimize how often values need to be quoted. Whichever delimiter you choose, this tool applies correct quoting automatically wherever a value happens to contain that delimiter, so the choice mainly comes down to matching whatever your destination spreadsheet, database, or import tool expects by default.
JSON to CSV Converter handles one direction of structured-to-tabular conversion. These related developer tools cover the reverse conversion and other structured-data tasks.