Converter YAML em JSON
Interpreta um documento YAML com a biblioteca yaml (schema core do YAML 1.2) e o devolve como JSON indentado. Comentários são descartados, anchors e aliases são expandidos, e valores como yes ou 2024-01-01 continuam strings.
Enviar configurações escritas em YAML para uma API ou um validador de JSON Schema que só aceita JSON.
Quando usar
- Enviar configurações escritas em YAML para uma API ou um validador de JSON Schema que só aceita JSON.
- Verificar como um arquivo de CI ou Kubernetes é realmente tipado, por exemplo se uma versão é string ou número.
Como usar
- Cole um único documento YAML ou carregue um arquivo .yaml/.yml.
- Se aparecer um erro, verifique a indentação, chaves duplicadas e separadores --- na linha indicada.
- Confira o que é string e o que é número no JSON de saída e copie-o.
Entrada YAML
# deployment settings service: billing-api replicas: 2 version: "1.10" enabled: yes ports: - 80 - 443 env: LOG_LEVEL: info
JSON
{
"service": "billing-api",
"replicas": 2,
"version": "1.10",
"enabled": "yes",
"ports": [
80,
443
],
"env": {
"LOG_LEVEL": "info"
}
}Detalhes e limitações
A interpretação roda no navegador. A saída é sempre JSON com 2 espaços; não há opção de minificar.
Valem as regras do YAML 1.2: yes/no/on/off são strings, não booleanos, e datas sem aspas continuam strings. 0o17 é octal (15).
Merge keys (<<: *anchor) não são mescladas; aparecem como uma chave literal "<<". Chaves duplicadas em um mesmo mapping são erro.
Inteiros acima de 2^53 perdem precisão no JSON. Coloque IDs longos entre aspas no YAML.
FAQ
Ele converte um arquivo com vários documentos separados por ---?
Não. Vários documentos causam o erro "Source contains multiple documents". Cole um documento por vez. Um único --- no início não tem problema.
Por que enabled: yes é uma string no JSON?
O parser segue o YAML 1.2, em que só true e false são booleanos. Escreva true/false se precisar de um booleano JSON.
Anchors e aliases são suportados?
Sim. Um alias como *base é substituído por uma cópia do valor ancorado. Já a merge key << do YAML 1.1 não é aplicada.