Data Format Converter (JSON / CSV / YAML)
Convert between JSON, CSV, and YAML in any direction — paste one format, get the other two, computed entirely in your browser.
Why the “right” format keeps changing depending on where the data is going
JSON, CSV, and YAML aren’t interchangeable so much as suited to different jobs, and real workflows constantly bounce between them. JSON is the standard for APIs and nested, structured data. CSV is what spreadsheets, databases, and non-technical stakeholders actually want, since it opens directly in Excel or Google Sheets. YAML is what most modern config files use (Docker Compose, CI/CD pipelines, Kubernetes manifests) because it’s more human-readable than JSON for hand-editing, at the cost of being pickier about whitespace. The friction point is almost always the same moment: you have data in one format and need it in another, right now, without writing a one-off script for what should be a solved problem.
How to use it
- Paste your data — JSON, CSV, or YAML — into the input panel. The tool auto-detects which format you’ve pasted.
- Select your target output format, and the conversion happens instantly.
- For JSON-to-CSV conversion of nested or complex data, choose how nested objects and arrays should be flattened into CSV’s inherently flat row-and-column structure — options include dot-notation flattening (
address.city) or JSON-stringifying nested values into a single cell. - For CSV-to-JSON, set whether the first row should be treated as column headers (usually yes) and whether values should be auto-typed (converting
"42"to the number42,"true"to a boolean) rather than kept as raw strings. - Preview the converted output before copying, and download it directly as a properly-extensioned file (
.json,.csv, or.yaml) rather than only copy-pasting.
Common situations this solves
- Turning an API’s JSON response into a CSV that a non-technical colleague can open directly in a spreadsheet, without needing any coding.
- Converting a spreadsheet export into JSON for use in application code or a script, especially when the CSV came from a source outside your control (a client, a third-party export) and needs to be ingested programmatically.
- Editing a YAML config file’s data in a spreadsheet where bulk editing many similar entries is easier in a grid, then converting back to YAML once changes are made.
- Understanding an unfamiliar YAML config file by converting it to JSON, which some developers find easier to visually parse due to its more explicit bracket-and-brace structure.
- Migrating data between two systems that expect different formats, without writing a throwaway conversion script for a one-time task.
Frequently asked questions
Does converting JSON to CSV lose information if the JSON has deeply nested objects?
It depends on your flattening choice — dot-notation flattening preserves the data but restructures it into more (and more specifically-named) columns, while JSON-stringifying nested values into a single cell preserves the full structure exactly but makes that particular cell not directly usable in spreadsheet formulas. Neither approach loses data outright, but the practical usability tradeoff differs, so choose based on what you’ll actually do with the CSV afterward.
Why does my CSV-to-JSON conversion show all values as text strings, even numbers?
This happens if auto-typing is turned off — enable it, and the converter will infer that a value like 42 should become a JSON number rather than the string "42", and that true/false should become JSON booleans, based on the value’s format. Be aware auto-typing can occasionally misinterpret an intentionally string-like value (such as a zip code that happens to be all digits) as a number, so it’s worth a quick check on identifier-style columns.
Is YAML strictly a subset of JSON, or are there things one can do that the other can’t?
YAML is a superset of JSON in the sense that valid JSON is (with minor exceptions) also valid YAML, but YAML adds features JSON doesn’t have — comments, multi-line string blocks, and anchors/references for reusing a value in multiple places. Converting YAML that uses these YAML-only features into JSON will resolve or flatten them into their final values, since JSON has no equivalent syntax to represent them.
What happens to CSV rows with a different number of columns than the header row?
Rows with fewer values than there are headers will have the missing fields set to empty/null in the resulting JSON, while rows with more values than headers typically trigger a warning, since that usually indicates a genuine formatting problem in the source CSV (like an unescaped comma inside a text field) rather than intentional data.
Can this handle very large CSV files, like tens of thousands of rows?
Yes, since conversion happens locally rather than being limited by a server upload size cap — very large files may take a few seconds longer to process and preview, but there’s no hard row-count ceiling built into the tool itself.