💻 Dev / TI · 2026

Conversor YAML ↔ JSON 2026

Converta entre YAML e JSON instantaneamente. Validação em tempo real, formatação e download.

Entrada — YAML
Saída — JSON

        

📄 O que é YAML e Por que Ele Dominou o Mundo DevOps?

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).

📝 Sintaxe YAML vs JSON: Um Guia Visual Rápido

ConceitoJSONYAML
Objeto (Map){ "nome": "Ana", "idade": 30 }nome: Ana
idade: 30
Lista (Array)["Maçã", "Banana"]- Maçã
- Banana
String"texto"texto (aspas opcionais, exceto com caracteres especiais)
Número42 / 3.1442 / 3.14
Booleanotrue / falsetrue / false (ou yes / no, on / off)
Nulonullnull ou ~
ComentárioNão suporta# Isto é um comentário

⚠️ O Calcanhar de Aquiles do YAML: Indentação com Espaços

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).

✅ CORRETO (2 espaços)
pessoa:
  nome: Ana
  idade: 30
❌ ERRADO (Tab ou mistura)
pessoa:
→   nome: Ana
    idade: 30

(O símbolo → representa Tab)
🚫

Configure seu editor! No VS Code, adicione no settings.json: "[yaml]": { "editor.insertSpaces": true, "editor.tabSize": 2 }. Isso salva vidas no Kubernetes.

☸️ Onde Você Encontra YAML no Mundo Real (DevOps)

FerramentaArquivo TípicoComo o Conversor Ajuda
Docker Composedocker-compose.ymlValidar se a estrutura está correta antes do docker compose up.
Kubernetesdeployment.yaml, service.yamlConverter um JSON de uma API do K8s em YAML para aplicar com kubectl apply -f.
Ansibleplaybook.yml, vars/main.ymlVerificar a sintaxe de variáveis complexas.
GitHub Actions.github/workflows/ci.ymlValidar a workflow antes de dar push.
Spring Boot (Java)application.ymlConverter propriedades JSON de legado para YAML.

📚 YAML Multi-Documento: Vários Recursos em um Só Arquivo

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.

📄 Arquivo YAML Multi-Doc
apiVersion: v1
kind: Pod
metadata:
  name: nginx
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
🔄 Conversão para JSON
Nossa ferramenta converterá isso em um array de objetos JSON:
[ { "apiVersion": "v1", ... }, { "apiVersion": "v1", ... } ]

Perguntas Frequentes sobre YAML e JSON

Com Python (pré-instalado na maioria das distros):
python -c "import sys, yaml, json; print(json.dumps(yaml.safe_load(sys.stdin), indent=2))" < arquivo.yaml
Com yq (jq para YAML):
yq eval -o=json arquivo.yaml
Use nossa ferramenta online para conversões rápidas sem instalar nada.
As causas mais comuns são:
  • Uso de Tab em vez de espaços (configure o editor).
  • Dois pontos (:) sem espaço depois. Errado: nome:Ana. Certo: nome: Ana.
  • Caracteres especiais não escapados (ex: : no meio de uma string não quotada). Use aspas: mensagem: "Hora: 10:00".
  • Valores booleanos em maiúscula (ex: True vs true). No YAML, é minúsculo.
SIM! Através de Âncoras (&) e Alias (*). Exemplo: defaults: &defaults
  timeout: 30
service1:
  <<: *defaults
  port: 8080

Isso mescla as propriedades de defaults em service1. Muito usado em Docker Compose e GitLab CI.
  • Use YAML: Para arquivos de configuração que humanos vão ler/escrever frequentemente (Docker, K8s, CI/CD, Ansible).
  • Use JSON: Para comunicação entre sistemas (APIs REST), onde a velocidade de parsing e a compatibilidade universal são críticas.
No backend (Node.js/Python), você pode usar qualquer um, mas o ecossistema de ferramentas define o padrão.
Cole na nossa ferramenta! Se a conversão para JSON for bem-sucedida, o YAML é válido. Para validação de schema específico (ex: se o campo 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.
SIM, 100% seguro. Toda a conversão é feita exclusivamente no seu navegador usando a biblioteca 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.

📌 Resumo: Dominando o Ecossistema YAML/JSON

1️⃣
YAML é para Humanos (DevOps). JSON é para Máquinas (APIs).
2️⃣
Indentação com ESPAÇOS. Nunca use Tabs em YAML. Configure seu editor.
3️⃣
YAML suporta Comentários e Âncoras. JSON não.
4️⃣
Use o conversor para migrar configurações. De JSON legado para YAML moderno.
5️⃣
100% Privado e Local. Seus dados nunca saem do seu navegador.

📋 Tabela Comparativa: YAML vs JSON vs TOML

Cada formato de serialização de dados tem suas próprias características e casos de uso ideais. Enquanto o JSON domina o ecossistema de APIs REST pela sua simplicidade e suporte universal, o YAML é preferido para arquivos de configuração por sua legibilidade humana. Já o TOML (Tom's Obvious Minimal Language) ganha espaço em ferramentas modernas como Rust (Cargo.toml), Python (pyproject.toml) e Hugo.

CaracterísticaYAMLJSONTOML
ComentáriosSim (#)NãoSim (#)
Tipos de dadosStrings, números, booleanos, null, datas, binárioString, number, boolean, null, array, objectString, inteiro, float, booleano, datetime, array, tabela
Legibilidade humanaAlta (indentação)Média (chaves e vírgulas)Alta (sem indentação obrigatória)
Uso principalCI/CD, Kubernetes, Ansible, Docker ComposeAPIs REST, armazenamento, comunicação entre serviçosConfiguração de ferramentas (Rust, Python, Hugo)
Tamanho médio do arquivoMenor (sem chaves/vírgulas)MédioSimilar ao YAML
Suporte a referênciasSim (anchors & aliases: &anchor, *ref)Não (nativo)Não

🔧 Exemplos Reais: Docker Compose, GitHub Actions, Kubernetes

Para ilustrar as diferenças práticas, compare a definição de um mesmo contêiner Docker nos dois formatos. Em YAML (Docker Compose), a configuração é legível e concisa: serviços como web e db são definidos com indentação simples, portas mapeadas como "8080:80" e variáveis de ambiente listadas diretamente. Em JSON equivalente, o mesmo conteúdo exige chaves, vírgulas e aspas duplas em todas as chaves, tornando o arquivo consideravelmente mais verboso e propenso a erros de digitação.

O GitHub Actions usa exclusivamente YAML para seus workflows, permitindo que desenvolvedores definam pipelines de CI/CD com blocos como on: push, jobs: e steps:. O Kubernetes aceita tanto YAML quanto JSON para seus manifestos (Deployments, Services, ConfigMaps), mas a comunidade adota YAML como padrão por legibilidade. No Kubernetes, os campos obrigatórios são: apiVersion, kind, metadata e spec.

⚠️

Armadilhas comuns do YAML — evite esses erros:
Problema da Noruega (Norway Problem): O valor NO em YAML é interpretado como booleano false, assim como YES, ON, OFF. O código de país da Noruega (NO) causou bugs famosos. Use sempre aspas: "NO".
Números octais: 0777 pode ser interpretado como octal (511 em decimal) em YAML 1.1. Use 0o777 em YAML 1.2 ou coloque entre aspas.
Tabs vs. espaços: YAML proibe o uso de tabs para indentação — use sempre espaços. Um tab invísvel pode causar erros de parsing difíceis de depurar.

Boas Práticas na Escrita de YAML

Para evitar erros sutis e garantir a portabilidade dos seus arquivos YAML entre diferentes ferramentas e versões de parsers, siga estas boas práticas consolidadas pela comunidade DevOps:

1. Sempre use aspas para strings ambíguas: Valores como "true", "false", "yes", "no", "null", números com zeros à esquerda (como "007") e datas (como "2024-01-01") devem ser colocados entre aspas quando representam texto, não tipos especiais. 2. Defina a versão do documento: Inicie arquivos YAML críticos com %YAML 1.2 para garantir comportamento previsível, especialmente com booleanos e números octais. 3. Use um linter: Ferramentas como yamllint (Python) e plugins de IDE como YAML Language Support (VS Code) detectam erros antes da execução. 4. Prefira listas explícitas: Em vez de separar itens por vírgula em uma string, use a sintaxe de lista YAML com traços (-) para cada item, tornando a estrutura evidente e fácil de editar.