Safety report
Checks designed to prevent the quiet data changes that make format conversion risky.
Batch results
—
JSON to YAML without silent type changes
JSON and YAML overlap, but a careless converter can still damage data. JavaScript’s normal JSON parser can round a very large integer, and YAML parsers can reinterpret strings such as "true", "1.0", "on" or date-shaped values. This tool is built around those edge cases.
What this converter does differently
- Lossless JSON number parsing: number tokens are kept as text internally, so integers beyond JavaScript’s safe-integer range are not rounded.
- Duplicate-key rejection: decoded keys are checked before conversion, including escaped duplicates such as
"a"and"\u0061". - Conservative YAML quoting: values that could be interpreted as booleans, nulls, numbers, dates or YAML 1.1 keywords stay strings.
- Round-trip self-check: the generated YAML subset is parsed again and compared with the source data before the output is marked verified.
- JSON Lines + multi-document YAML: NDJSON records become separate YAML documents automatically.
- Batch conversion: convert several files locally and download the successful results together as a ZIP.
Worked example
JSON
{
"version": "1.0",
"enabled": "true",
"requestId": 900719925474099312345,
"features": ["fast", "private"]
}
YAML
version: "1.0"
enabled: "true"
requestId: 900719925474099312345
features:
- fast
- privateWhen to use each option
Cross-parser safe is the recommended default when YAML may be read by different libraries or older systems. Sort keys is useful for deterministic diffs, but leave it off if source key order matters to humans. Split root array is useful when an array represents several independent Kubernetes-style documents.
Privacy and limitations
Conversion happens in the browser. The tool does not intentionally upload or persist your input. Browser memory still sets a practical ceiling for very large files, and this tool intentionally emits a conservative YAML subset rather than advanced YAML features such as anchors, aliases, custom tags or comments. JSON has no comments to preserve.
FAQ
Does a 20-digit integer stay exact?
Yes. The parser preserves the original JSON number token instead of first converting it to a JavaScript Number.
Why is "on" sometimes quoted?
Some YAML 1.1 parsers treat words such as on, off, yes and no as booleans. Cross-parser safe mode quotes them to keep their JSON string type.
What happens with duplicate JSON keys?
The conversion stops and reports the duplicate. Silently choosing one value can destroy data, so the tool makes you fix the source instead.
Does JSON Lines work?
Yes. Each non-empty JSONL/NDJSON line becomes a separate YAML document separated with ---.
Are uploaded files sent to a server?
No. File reading, conversion, validation and ZIP creation are implemented client-side.