JSON, CSV & YAML Converter

Convert between JSON, CSV and YAML in both directions, with a table preview and nested data flattened.

Nested objects become columns like address.city; arrays are written as JSON text in a single cell.

Input · JSON
Result · CSV
The CSV appears here.

Everything runs in your browser: the data you paste or open is not uploaded anywhere.

About the JSON, CSV & YAML Converter

Turn an API response into a spreadsheet, a CSV export into JSON, or a JSON config into YAML. Paste text or drop a file, pick the direction, and the result appears as you type, with a table preview of the rows. The CSV side follows RFC 4180, the format Excel and Google Sheets use, and errors point to the exact line. Nothing is uploaded: the conversion runs in your browser.

How to use the JSON, CSV & YAML Converter

  1. Choose the direction

    Pick JSON → CSV, CSV → JSON, JSON → YAML or YAML → JSON. Opening a .csv, .tsv, .yaml or .yml file selects the matching direction for you.

  2. Paste or open your data

    Paste text into Input or drop a file of up to 10 MB. For CSV the delimiter is detected; change it, or untick "First row is the header" or "Detect numbers, true/false and null", if your file needs it.

  3. Check, copy or download

    Look at the table preview and fix any error at the line shown. Then copy or download the result; "Add BOM for Excel" makes Excel open accented characters correctly. Swap turns the result into the new input to convert it back.

When to use it

API data into a spreadsheet

Convert a JSON array from an API or a database export into CSV and open it in Excel, Google Sheets or Numbers, with nested fields in their own columns.

Spreadsheets into JSON

Turn a CSV exported from a spreadsheet into an array of JSON objects for test data, seed data or a quick import script, with numbers and booleans typed.

Config files between JSON and YAML

Rewrite a JSON config as YAML for Docker Compose, Kubernetes or GitHub Actions, or read a YAML file as JSON to see what it really contains once anchors and merge keys are resolved.

Frequently asked questions

How are nested objects and arrays written to CSV?

Nested objects become one column per field, named with dots: {"address": {"city": "London"}} gives an address.city column. Arrays stay in a single cell as JSON text, such as ["math","poetry"], so each object is still one row. The columns are every key found, in the order they first appear; a missing key leaves its cell empty.

Which JSON shapes can be converted to CSV?

An array of objects (one row each), a single object (one row), an object that holds one array of objects such as {"items": [...]} (the rows come from that array and the other properties are left out), an array of plain values (one "value" column) and an array of arrays (written as rows, with no header). A single string or number cannot become a table.

Why does Excel show strange characters or put everything in one column?

Excel needs a byte order mark to read UTF-8 accents: tick "Add BOM for Excel" before downloading. In countries where the decimal separator is a comma, Excel expects semicolons between fields, so pick Semicolon (;) as the delimiter.

What happens with several YAML documents, anchors and comments?

A file with several documents separated by --- becomes a JSON array with one item per document. Anchors, aliases and merge keys (<<) are resolved into plain values. Comments are dropped, because JSON has none. From JSON to YAML, strings such as yes, no, on or 2024-01-01 are quoted so YAML 1.1 parsers keep them as text.

Is my data uploaded?

No. Parsing and conversion run in your browser, and the files you open are read on your device. The input is autosaved in your browser's local storage (up to about 200,000 characters) so it is still there when you come back; Clear removes it.