JSON, CSV & YAML Converter
Convert structured data locally, keep large numbers exact, and see every CSV tradeoff before exporting.
Local processing starts when the converter is ready.
Up to 200,000 input code units · No uploads
Input stays in this browser tab. Editing clears the previous result.
Read-only generated output. Copy and download preserve its exact text.
Convert JSON, CSV, and YAML with the tradeoffs visible
Move structured data between three formats in one browser-local workbench. The converter uses Papa Parse for CSV, the YAML document parser for YAML 1.2, and lossless-json for JSON numbers. Pasted input is never sent to a conversion service. Parser code loads only on this tool route.
How to convert and convert back
- Choose the input and output formats, then paste data or load the corresponding example.
- For CSV, choose whether the first row is a header or whether every row is an array. Select text cells or a JSON value in every cell.
- Select Convert data or use Ctrl/Cmd+Enter. Review the conversion notices before copying or downloading.
- Use Swap using output to move the generated result into the input panel and reverse the formats. Reconvert explicitly.
Numbers, null, and nested data
JSON and YAML numeric tokens are kept as text internally, so an ID such as 900719925474099312345 is not rounded to a JavaScript number.
YAML hexadecimal and octal integers normalize to exact decimal digits.
Output consumers can still lose precision if they parse large numbers into
a limited numeric type. Strings are quoted in YAML output to preserve
their type.
In CSV text mode, an empty cell is an empty string. No numeric or boolean
types are guessed. Exporting null makes an empty cell, and nested values
become compact JSON text inside a cell, with a notice. Nothing is
flattened. JSON-cell mode stores each data cell as a JSON value, including
quoted strings and explicit null, so its values can be parsed
back. Missing object properties still become null because a rectangular
CSV cannot represent their absence.
Raw and spreadsheet-guarded CSV
CSV syntax quoting does not prevent spreadsheet formulas. Guarded export prefixes formula-like cells with an apostrophe and reports the number changed. Raw export keeps the cell values and warns when formula-like values are present. Guarding can change negative numeric cells and make JSON-cell text unsuitable for immediate reimport. Choose the mode for the receiving application and inspect its import settings; the tool does not promise universal spreadsheet safety.
Limits and common questions
Input is capped at 200,000 UTF-16 code units and output at 1,000,000. Data is limited to 40 levels and 25,000 values. CSV permits up to 2,000 data rows, 200 columns, and 25,000 cells, with strict equal-width records and unique nonempty headers. CSV output requires an array of objects or equally sized arrays. An empty data structure cannot supply output columns.
Duplicate JSON and YAML keys, YAML aliases, explicit tags, complex mapping keys, YAML 1.1 directives, infinity, and NaN are rejected. Comments and presentation styles are not retained; object key order follows JavaScript object enumeration. A header-only CSV becomes an empty array with a notice because JSON and YAML cannot retain its unused column names. Conversion runs in a cancellable worker with a ten-second limit. Editing input or options clears stale output immediately.
Parser and format references
See the Papa Parse documentation, YAML parser documentation, lossless-json numeric model , and OWASP CSV injection guidance for parser behavior and spreadsheet-specific risks.