JSON to YAML Converter

Convert JSON to clean, readable YAML in your browser. Ideal for Kubernetes, Docker Compose, and CI config. Free, no signup, nothing uploaded.

JSON inputpaste, type, or drop a file
YAML output
Runs 100% in your browser. Nothing is uploaded, logged, or stored, and there are no ads. Verify it yourself: open your browser's Network tab while you convert and watch that no requests leave this page.

About this tool

Convert strict JSON into human-friendly YAML. This is the direction you need when turning an API response or JSON config into a Kubernetes manifest, GitHub Actions workflow, or Docker Compose file.

Output uses 2-space indentation, keeps key order, and avoids YAML anchors/references so the result is predictable and diff-friendly.

Common uses

  • Draft a Kubernetes or Helm values file starting from JSON you already have.
  • Convert JSON app config to YAML for tools that prefer it (CI pipelines, linters).
  • Make a large JSON document readable for code review.

Automate via API

The same conversion is available as a REST endpoint for scripts, pipelines, and backends:

curl -X POST https://payloadly.com/api/v1/tools/json-to-yaml \
  -H "Content-Type: text/plain" \
  -H "X-Api-Key: YOUR_API_KEY" \
  --data-binary @input.json

API documentation · Get an API key

Worked examples

Real payloads from tools people use daily, with the exact output this converter produces. Every example runs in your browser, so you can load one and adapt it to your own data.

Convert JSON to a Kubernetes manifest

When a tool or API hands you a resource as JSON, converting to YAML gives you a manifest you can drop straight into kubectl apply.

JSON input
{
  "apiVersion": "v1",
  "kind": "ConfigMap",
  "metadata": { "name": "app-config" },
  "data": { "LOG_LEVEL": "info", "TIMEOUT": "30" }
}
YAML output
apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  LOG_LEVEL: info
  TIMEOUT: '30'

Convert JSON to a Docker Compose file

Compose files are YAML; converting from JSON is handy when your service definitions are generated or stored as JSON.

JSON input
{
  "services": {
    "web": { "image": "nginx:1.27", "ports": ["80:80"] },
    "db": { "image": "postgres:16", "environment": { "POSTGRES_PASSWORD": "secret" } }
  }
}
YAML output
services:
  web:
    image: nginx:1.27
    ports:
      - 80:80
  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: secret

JSON notes

JSON (JavaScript Object Notation) is the standard interchange format for web APIs, config files, and log pipelines. It is strict: keys must be double-quoted, trailing commas are invalid, and comments are not allowed.

  • JSON does not support comments; they are stripped or rejected by parsers.
  • Trailing commas after the last element are invalid JSON.
  • Integers beyond 2^53 lose precision in JavaScript-based parsers.

YAML notes

YAML is a human-friendly superset of JSON used heavily in Kubernetes manifests, GitHub Actions workflows, Docker Compose files, and CI/CD pipelines. Indentation is structural, and unquoted scalars are type-coerced.

  • Indentation defines structure; tabs are not allowed for indentation.
  • Unquoted values like `no`, `on`, or `1.0` may be coerced to booleans or numbers.
  • Comments (`# ...`) cannot survive a round-trip through JSON.

Frequently asked questions

Is my data uploaded to a server?

No. This tool runs entirely in your browser using JavaScript, and there are no ads on the page. Nothing you paste or drop here is uploaded, logged, or stored, and you can verify that yourself: open your browser's developer tools and watch the Network tab while you convert (no requests leave the page), or disconnect from the internet after the page loads and keep working.

What should I watch out for when converting JSON to YAML?

JSON does not support comments; they are stripped or rejected by parsers. Trailing commas after the last element are invalid JSON. Indentation defines structure; tabs are not allowed for indentation. Unquoted values like `no`, `on`, or `1.0` may be coerced to booleans or numbers.

Is there a size limit or a fee?

The browser tool is free with no signup and comfortably handles files up to tens of megabytes (limited by your device's memory). For automated or bulk processing inside your own scripts and pipelines, use the paid REST API.

Related tools