DevConverter Team
5 min read

JSON to YAML Converter: How to Convert JSON to YAML Format

Why Convert JSON to YAML?

JSON and YAML are both popular data serialization formats, but YAML offers better readability for configuration files. Converting between them is common when:

  • Migrating configuration files (Docker, Kubernetes, CI/CD)
  • Making configs more human-readable
  • Working with tools that require specific formats
  • Documenting API responses

Who needs this:

  • DevOps engineers managing Kubernetes configs
  • Developers working with Docker Compose
  • API developers documenting responses
  • Anyone dealing with configuration files

JSON vs YAML: Key Differences

JSON Example

{
  "name": "myapp",
  "version": "1.0.0",
  "dependencies": {
    "express": "^4.18.0",
    "mongoose": "^7.0.0"
  },
  "scripts": {
    "start": "node index.js",
    "test": "jest"
  }
}

YAML Equivalent

name: myapp
version: 1.0.0
dependencies:
  express: ^4.18.0
  mongoose: ^7.0.0
scripts:
  start: node index.js
  test: jest

Key differences:

  • YAML uses indentation (no braces)
  • No quotes needed for most strings
  • More concise and readable
  • Supports comments with #

How to Convert JSON to YAML

Method 1: Use DevConverter (Instant)

  1. Copy your JSON data
  2. Open DevConverter JSON to YAML tool
  3. Paste and get instant YAML output
  4. Copy the result

Method 2: Using Node.js

const yaml = require("js-yaml")
const fs = require("fs")
 
// Read JSON file
const jsonData = JSON.parse(fs.readFileSync("config.json", "utf8"))
 
// Convert to YAML
const yamlData = yaml.dump(jsonData, {
  indent: 2,
  lineWidth: -1,
  noRefs: true,
})
 
// Write YAML file
fs.writeFileSync("config.yaml", yamlData, "utf8")

Method 3: Using Python

import json
import yaml
 
# Read JSON file
with open('config.json', 'r') as json_file:
    data = json.load(json_file)
 
# Convert to YAML
with open('config.yaml', 'w') as yaml_file:
    yaml.dump(data, yaml_file, default_flow_style=False)

Common Mistakes When Converting

1. Incorrect Indentation

❌ Wrong:

services:
 web:
   image: nginx
  ports:
    - 80:80

✅ Correct:

services:
  web:
    image: nginx
    ports:
      - 80:80

YAML requires consistent indentation (usually 2 spaces).

2. Forgetting to Quote Special Characters

# ❌ Wrong - will cause parsing errors
message: Hello: World
url: http://example.com
 
# ✅ Correct
message: "Hello: World"
url: "http://example.com"

3. Mixing Tabs and Spaces

YAML doesn't allow tabs. Always use spaces for indentation.

4. Not Handling Null Values

# JSON: {"value": null}
 
# ❌ Wrong
value: null
 
# ✅ Correct (explicit null)
value: ~
# or
value: null

Best Practices

1. Use Consistent Indentation

Stick to 2 spaces throughout your YAML files:

parent:
  child:
    grandchild: value

2. Add Comments for Clarity

# Database configuration
database:
  host: localhost # Development server
  port: 5432
  name: myapp_dev

3. Use Anchors for Repeated Values

defaults: &defaults
  timeout: 30
  retries: 3
 
production:
  <<: *defaults
  host: prod.example.com
 
development:
  <<: *defaults
  host: localhost

4. Validate Your YAML

Always validate after conversion:

Real-World Use Cases

Docker Compose

{
  "version": "3.8",
  "services": {
    "web": {
      "image": "nginx:latest",
      "ports": ["80:80"]
    }
  }
}

Converts to:

version: "3.8"
services:
  web:
    image: nginx:latest
    ports:
      - 80:80

Kubernetes ConfigMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  config.json: |
    {
      "apiUrl": "https://api.example.com",
      "timeout": 5000
    }

GitHub Actions

name: CI
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Run tests
        run: npm test

FAQ

Can I convert YAML back to JSON?

Yes! Use DevConverter's YAML to JSON tool for instant conversion.

Which format is better, JSON or YAML?

  • JSON: Better for APIs, data exchange, JavaScript
  • YAML: Better for configs, human readability, DevOps

Does YAML support all JSON features?

Yes, YAML is a superset of JSON. Any valid JSON is also valid YAML.

How do I handle large JSON files?

Use DevConverter's tool—it handles files up to 10MB and processes everything in your browser for privacy.

Can I convert JSON arrays to YAML?

Yes:

["item1", "item2", "item3"]

Becomes:

- item1
- item2
- item3

What about multiline strings?

YAML handles them better:

description: |
  This is a multiline
  string that preserves
  line breaks.

How do I convert nested JSON objects?

DevConverter handles any nesting level automatically. Just paste and convert.

Are there any JSON features YAML doesn't support?

YAML supports everything JSON does, plus comments, anchors, and better multiline strings.

Can I customize the YAML output format?

Yes, in DevConverter you can adjust:

  • Indentation (2 or 4 spaces)
  • Quote style
  • Line width
  • Array formatting

What if my JSON has syntax errors?

DevConverter will highlight errors and show you exactly where the problem is.

Quick Summary

  • YAML is more readable than JSON for configuration files
  • Use DevConverter's JSON to YAML tool for instant conversion
  • Watch out for indentation—use spaces, not tabs
  • YAML supports comments and anchors for better configs
  • Always validate your YAML after conversion

Ready to convert? Try our free JSON to YAML converter →

Fast, secure, and completely private—no data leaves your browser.