OneFreePlace
Developer Tools / Data Conversion / #333
#333 Developer Tool 100% local No sign-up

JSON → YAML

Turn strict JSON or JSON Lines into clean YAML without losing big integers, key order or string types. Conversion, safety checks and batch files stay in your browser.

LosslessJSON number lexemes preserved
JSON input
0 B
Drop one or many .json / .jsonl files here, or
YAML output
Waiting for JSON
Round-trip verification re-parses the generated safe YAML subset before it is marked ready.
Input—
Output—
Nodes—
Depth—
Documents—
Large integers—

Safety report

Checks designed to prevent the quiet data changes that make format conversion risky.

✓
Strict JSON + duplicate-key guardWaiting for input
✓
Exact numbersOriginal numeric lexemes are preserved
✓
String type protectionRisky strings are quoted automatically
✓
Round-trip verifiedGenerated YAML is self-checked before download

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
  - private

When 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.