What this tool does
YAML is a superset of JSON, so the mapping is direct: objects become mappings, arrays become sequences, and every scalar keeps its type.
{ "name": "Ada", "tags": ["math", "engine"], "active": true }
name: Ada
tags:
- math
- engine
active: true
Quoted where it would otherwise change meaning
{ "country": "NO", "flag": "yes", "at": "12:30" }
country: "NO"
flag: "yes"
at: "12:30"
Written bare, those three would be read as false, true and 750 by any YAML 1.1 parser — which is what PyYAML implements, and PyYAML is what a very large share of the world reads YAML with. It is called the Norway problem, after the country code that keeps turning into a boolean.
Here the value arrives from JSON as a string, so there is no ambiguity about what it is. Quoting it is the only writing that keeps it a string for every reader. Real booleans stay bare: true is true.
Long identifiers keep their digits
{ "id": 12345678901234567890 }
comes out with all twenty digits. Most converters parse JSON into a JavaScript value first, which sends every number through a double-precision float and rounds anything past about fifteen digits — quietly. The number is read here as the text it is.
Multi-line strings become block scalars
A string containing newlines is written in YAML’s readable block form rather than with \n escapes:
description: |-
first line
second line
What cannot come across
Comments and anchors. JSON has neither, so there is nothing to carry. A converter that offered to add them would be inventing your file’s documentation, and that is a job for a person.
Private by design
Everything runs locally in your browser with JavaScript. Your data is never uploaded, which makes the tool safe for sensitive content, and it keeps working offline.