JSON to YAML
I speak YAML. I just don’t trust it.
Paste JSON. YAML comes out the other side.
Ctrl+Enter converts · key order kept
YAML trusts indentation. I trust brackets.
Paste JSON and get YAML that means the same thing to a YAML 1.2 reader. Keys keep their order, numbers keep their notation, and strings YAML would misread are quoted.
How it works
- Paste JSON or drop a file.
- Press Ctrl/Cmd+Enter.
- Copy the YAML or download .yaml.
Strings YAML would misread
| JSON string | Unquoted, YAML reads it as | We write |
|---|---|---|
"no" | boolean | "no" |
"on" | boolean | "on" |
"null" | null | "null" |
"0800" | number | "0800" |
"1e3" | number | "1e3" |
"2026-11-06" | date | "2026-11-06" |
FAQ
Why are some strings in quotes?
Unquoted, values like no, on, yes, null, 0123, 1e3 or 2026-11-06 would be read by YAML as booleans, null, numbers or dates. Quotes keep them strings.
Is key order preserved?
Yes. Keys come out in the same order as in the JSON. Numbers keep their notation too: 1.10 stays 1.10.
What kind of YAML does it produce?
Block-style YAML with 2-space indentation. Strings that YAML 1.1 or 1.2 would read as booleans, null, numbers or dates are quoted. Numbers keep their JSON notation, so a YAML 1.1 reader (Ruby Psych, PyYAML) may load exponent forms like 1e3 as strings.
Can it convert YAML back to JSON?
Not yet. One direction, done properly.
Other tools
- JSON Formatter — 2 spaces, 4 spaces or tabs, order kept.
- JSON Validator — exact line and column for every error.
- JSON Diff — what changed, with JSON Pointer paths.
- Base64 Encode & Decode — in your browser, nothing sent.
- JSON to Query String — arrays, nesting and spaces your way, and back.
- JSON Minifier — one line, every byte accounted for.