JSON to YAML converter

Convert JSON to clean block-style YAML in your browser. Useful for Kubernetes manifests, CI pipelines and config files. Nothing is uploaded.

About this converter

YAML is a superset of JSON, which means every valid JSON document is already valid YAML - but pasting raw JSON into a Kubernetes manifest or a GitHub Actions workflow defeats the point. What you want is idiomatic YAML: indentation instead of braces, unquoted keys, and block scalars for long strings.

This converter parses your JSON and re-emits it in YAML block style. Keys stay in their original order, strings are quoted only where YAML actually requires it, and multi-line strings become block scalars rather than one long line full of escape sequences.

The most common reason to run this conversion is config migration: moving a JSON settings file into a Helm values file, a docker-compose service, or a CI pipeline definition. The second most common is readability, since a deeply nested JSON blob pulled from an API is far easier to reason about as YAML when you are trying to work out its shape.

One thing worth knowing: YAML has more type coercion surprises than JSON. Values like yes, no, on and off can be read as booleans by YAML 1.1 parsers, and a version number like 1.10 may be read as a float and lose its trailing zero. This converter quotes values that would be ambiguous, but review the output before committing it to anything that matters.

The conversion runs in your browser, which matters given how often config files contain hostnames, internal service names and things that should not appear in someone else’s logs.

Frequently asked questions

Why are some strings quoted and others not?
YAML only needs quotes where a bare value would be ambiguous, for example yes, null, 1.10, or a string with a leading colon. Everything else is left unquoted for readability.
Does it preserve key order?
Yes. Keys are emitted in the order they appear in your JSON rather than sorted alphabetically.
Is my config uploaded?
No. Parsing and emitting both happen in your browser.

Related converters