Converta entre YAML e JSON instantaneamente. Validação em tempo real, formatação e download.
YAML (YAML Ain't Markup Language) é uma linguagem de serialização de dados legível por humanos. Seu nome já indica a filosofia: não é uma linguagem de marcação complicada, mas sim um formato limpo baseado em indentação (espaços) para representar listas, dicionários e valores escalares.
O YAML se tornou o padrão absoluto no ecossistema Cloud Native: Docker Compose, Kubernetes, Ansible, GitHub Actions, GitLab CI, Helm Charts — todos usam YAML para arquivos de configuração. É mais fácil de ler e escrever que JSON (sem chaves, vírgulas ou aspas obrigatórias) e mais poderoso que INI ou .env.
YAML vs JSON:
- JSON é o formato da web (APIs REST). É verboso (muitas chaves, vírgulas) e estrito.
- YAML é o formato da infraestrutura (DevOps). É limpo, suporta comentários (#) e âncoras (&alias).
| Conceito | JSON | YAML |
|---|---|---|
| Objeto (Map) | { "nome": "Ana", "idade": 30 } | nome: Ana |
| Lista (Array) | ["Maçã", "Banana"] | - Maçã |
| String | "texto" | texto (aspas opcionais, exceto com caracteres especiais) |
| Número | 42 / 3.14 | 42 / 3.14 |
| Booleano | true / false | true / false (ou yes / no, on / off) |
| Nulo | null | null ou ~ |
| Comentário | Não suporta | # Isto é um comentário |
A principal fonte de erros em YAML é a indentação incorreta. Diferente do Python (que aceita tabs ou espaços), o YAML exige espaços (nunca use Tab!). A indentação define a hierarquia (pai/filho).
pessoa:
nome: Ana
idade: 30
pessoa:
→ nome: Ana
idade: 30Configure seu editor! No VS Code, adicione no settings.json: "[yaml]": { "editor.insertSpaces": true, "editor.tabSize": 2 }. Isso salva vidas no Kubernetes.
| Ferramenta | Arquivo Típico | Como o Conversor Ajuda |
|---|---|---|
| Docker Compose | docker-compose.yml | Validar se a estrutura está correta antes do docker compose up. |
| Kubernetes | deployment.yaml, service.yaml | Converter um JSON de uma API do K8s em YAML para aplicar com kubectl apply -f. |
| Ansible | playbook.yml, vars/main.yml | Verificar a sintaxe de variáveis complexas. |
| GitHub Actions | .github/workflows/ci.yml | Validar a workflow antes de dar push. |
| Spring Boot (Java) | application.yml | Converter propriedades JSON de legado para YAML. |
Uma feature exclusiva do YAML é a capacidade de conter múltiplos documentos em um único arquivo, separados por ---. Isso é muito usado em Kubernetes para definir Deployment + Service no mesmo arquivo.
apiVersion: v1
kind: Pod
metadata:
name: nginx
---
apiVersion: v1
kind: Service
metadata:
name: nginx-svc
[ { "apiVersion": "v1", ... }, { "apiVersion": "v1", ... } ]
python -c "import sys, yaml, json; print(json.dumps(yaml.safe_load(sys.stdin), indent=2))" < arquivo.yamlyq eval -o=json arquivo.yamlnome:Ana. Certo: nome: Ana.: no meio de uma string não quotada). Use aspas: mensagem: "Hora: 10:00".True vs true). No YAML, é minúsculo.defaults: &defaults
timeout: 30
service1:
<<: *defaults
port: 8080defaults em service1. Muito usado em Docker Compose e GitLab CI.
apiVersion é válido para o recurso K8s), use o kubectl apply --dry-run=client -f arquivo.yaml ou a extensão oficial do Kubernetes no VS Code.
js-yaml. Seus arquivos YAML/JSON NUNCA são enviados para nossos servidores. Você pode desconectar da internet e a ferramenta continuará funcionando perfeitamente. Ideal para validar secrets do Kubernetes.
Veja também