Data Format Converter — JSON ↔ CSV ↔ YAML

Link copied

A fast, private converter for the three formats you reach for most: JSON, CSV, and YAML. Paste data in any of them, choose the format you want out, and get a clean, ready-to-use result instantly. Going to CSV turns an array of objects into an RFC 4180 spreadsheet with a header row and properly escaped cells; reading CSV maps each row onto its header keys and can infer numbers and booleans so the JSON or YAML you get back is idiomatic rather than all-strings. JSON and YAML conversions preserve nested structure, and you can choose 2- or 4-space indentation for the output. A one-click swap reverses the direction and feeds the result back in, so you can round-trip or chain conversions effortlessly. Everything happens locally in your browser — your data is never uploaded, logged, or stored, and no account is required.

Indent
Output
Converted output appears here.

How to use

Pick the format you're converting from and the format you want out using the two dropdowns, then paste or type your data into the Input box. The Output updates as you type. When the source is CSV, toggle "Infer numbers & booleans" to control whether cell values are coerced to native types. For JSON and YAML output, choose 2- or 4-space indentation. Use Copy to grab the result or Download to save it with the right file extension. Click Swap to reverse the direction and move the current output into the input — handy for round-tripping. Click Load sample to try it with example data.

Frequently asked questions

How is tabular CSV mapped to nested JSON or YAML?
CSV is flat, so each row becomes one object keyed by the header row, and the whole file becomes an array of those objects. When exporting nested JSON or YAML to CSV, any nested object or array in a cell is stored as compact JSON text so no information is lost. For best results, convert arrays of flat objects to CSV.
Will numbers and booleans survive a CSV conversion?
By default, reading CSV infers native types: values like 36 become numbers and true/false become booleans, so your JSON or YAML isn't all strings. Values with leading zeros (like a ZIP code 00501) stay strings to avoid corrupting them. You can turn inference off to keep every CSV cell as a string.
Is my data sent anywhere?
No. All parsing and conversion happen entirely in your browser using local JavaScript. Your data is never uploaded, logged, or stored on any server, and the tool works fully offline once loaded — no account needed.