Developer TOOL

JSON to YAML

Rewrite a JSON document as YAML, keeping the structure exactly and choosing your indentation. Keys can be sorted for a diffable file, and anchors are deliberately not emitted, because a converter that invents aliases produces something most people did not ask for.

Processed locally in your browser — your file is never uploaded

DEVELOPERJSON to YAML
Processed locally
Input
Output

YAML allows any consistent indent. Two is conventional; Kubernetes manifests often use two inside a list.

Makes two versions of the same configuration diffable line by line.

Your text never leaves this page.

How json to yaml works

  1. Paste the JSONAny valid JSON document: object, array or a bare value.
  2. Choose the indentationSort the keys as well if the file will be reviewed in a diff.
  3. Save the YAMLDownload it, or copy it straight into a configuration file.

What you get

Convert JSON into the indentation-based format people prefer to read. Everything happens inside this page: the file is read by your browser, transformed in memory and handed straight back to you as a download. There is no upload queue, no waiting for a server, and nothing left behind when you close the tab.

Supported formats

This tool works on text you paste or type, so there is no file format to worry about. Nothing you type is sent anywhere.

Limitations, stated up front

  • Comments and anchors in the source JSON do not exist, so nothing of that kind survives the round trip.
  • YAML is not JSON: a long flow-style document becomes block style, which is the point, but the two files will not diff cleanly against each other.

Frequently asked questions

Will the YAML read back the same?

Yes, with one caveat worth knowing. YAML has more types than JSON: an unquoted 2026-01-01 is read as a date, and yes, no, on and off are read as booleans. Furtu quotes any string that could be misread that way, so a string stays a string in both directions.

Why are there no anchors?

Because repeated sub-objects are written out in full. YAML can express them as an anchor and an alias, but a converter that invents those produces a file whose structure looks different from the JSON, and which strict parsers in other languages handle badly. If you want aliases, that is an editorial decision.

What about empty values?

JSON null becomes a tilde, which is the conventional YAML spelling of null. An empty string is written with quotes so it does not turn into null on the way back in.

Is the conversion done locally?

Yes, with the js-yaml library. The YAML engine is only downloaded when you open a YAML tool, so the other developer tools do not pay for it.

Is my JSON uploaded?

No. The parser and the YAML writer both run in this tab, so a config payload containing a token is never transmitted.