Convert between JSON and YAML in both directions. Perfect for working with Kubernetes manifests, GitHub Actions workflows, Docker Compose files, OpenAPI specs, and any tool that accepts either format.
Converted output will appear here
JSON and YAML are both popular ways to represent structured data — they share the same underlying model of keys, values, lists, and nested objects. The difference is presentation. JSON uses braces and brackets and double quotes (machine-friendly); YAML uses indentation and minimal punctuation (human-friendly).
You'll encounter both in any modern infrastructure stack. Kubernetes accepts both but documentation is mostly YAML. GitHub Actions, GitLab CI, and CircleCI all use YAML. Docker Compose uses YAML. AWS CloudFormation accepts both. OpenAPI specs come in both. Helm charts are YAML. Ansible playbooks are YAML.
If you're working programmatically — generating configs, validating against schemas, transforming data — JSON is usually easier because every language has fast native JSON support, and JSON Schema tooling is more mature. If you're hand-editing — writing a CI workflow, tweaking a deployment, reviewing a code review — YAML is often less typing and more scannable.
This converter lets you have it both ways. Generate JSON programmatically, convert to YAML for hand-editing. Or hand-write YAML, convert to JSON for programmatic processing. Either direction works.
The conversion is straightforward:
JSON → YAML is straightforward because JSON's data model is a strict subset of YAML's. Everything in JSON can be expressed in YAML without information loss. YAML → JSON works in reverse but loses YAML-specific features that JSON can't represent (comments, anchors, custom tags, multi-line string folding markers).
K8s YAML files are easier to edit by hand. But when you're generating manifests with templating tools or validating them against the OpenAPI spec, working in JSON is often simpler.
Workflow files are always YAML. If you're generating them from a JSON template (common in monorepos with many similar pipelines), this converter is the bridge.
docker-compose.yml is YAML. Convert from a JSON config exported by your application or generated by a deployment tool.
OpenAPI specs are valid in both formats. Some tools (Stoplight, Postman) prefer one; some prefer the other. Convert as needed.
Helm values.yaml files configure Helm-templated YAML. When testing values, JSON conversion lets you use JSON-only validators and transformers.
CloudFormation, Terraform's output, deployment manifests — all support both formats. Convert to whichever your downstream tool expects.
&name) and aliases (*name) are resolved during conversion — the referenced value is inlined wherever the alias appears. The resulting JSON has no concept of references, so the conversion is one-way: converting back to YAML won't restore the original anchor/alias structure.!!type) or YAML directives (%YAML 1.1).{{ .Values.foo }} template syntax that's invalid YAML before rendering. Our converter expects valid YAML; for Helm files, render the template first (helm template) and then convert the rendered YAML.yq.yes becomes true, 1.23e2 becomes 123, and bare strings that look like numbers become numbers. To force a string, wrap in quotes: foo: "yes" stays as the string "yes".