YAML vs JSON: qual usar e por quê

YAML vs JSON

YAML vs JSON: diferenças, armadilhas e .yaml vs .yml | We.Inc

YAML vs JSON lado a lado: sintaxe, comentários, tipos, texto em várias linhas e a armadilha do yes/no. Teste como um valor sem aspas é lido e resolva de vez .yaml vs .yml.

JSON é um formato de dados rígido feito para programas: chaves, colchetes, strings entre aspas duplas e nada de comentários. YAML expressa os mesmos dados com indentação, aceita comentários e texto em várias linhas, e a versão 1.2 foi projetada como um superset de JSON. Escolha JSON para APIs e saída de máquina, YAML para arquivos que pessoas editam à mão.

YAML e JSON comparados recurso por recurso

Os dois formatos descrevem as mesmas coisas: mapas, listas, strings, números, booleanos e null. As diferenças reais são quem lê o arquivo e o quanto o parser é tolerante. Use o verificador de valores abaixo para ver como um valor sem aspas recebe um tipo, depois leia os exemplos lado a lado e as armadilhas que pegam quem transita entre os dois.

Perguntas frequentes

Todo arquivo JSON é YAML válido?

O YAML 1.2 foi escrito para ser um superset estrito de JSON, então na prática um documento JSON carrega em um parser YAML 1.2. Existem casos-limite, como chaves duplicadas, que parsers JSON muitas vezes toleram mas o YAML proíbe.

Devo usar .yaml ou .yml?

Use .yaml. A RFC 9512, que registra o media type application/yaml, chama .yaml de extensão preferida e observa que .yml ainda é usada. As duas funcionam em ferramentas como o GitHub Actions, então a escolha é uma questão de consistência dentro de um projeto.

Por que meu valor YAML virou true ou false?

O YAML 1.1 tratava palavras como yes, no, on, off, y e n como booleanos. O core schema do YAML 1.2 só aceita true e false em três formas de maiúsculas e minúsculas, mas parsers antigos ainda são comuns. Colocar o valor entre aspas acaba com a dúvida.

JSON pode ter comentários?

Não. A RFC 8259 lista os tokens que um JSON pode conter, e comentários não estão entre eles. Algumas ferramentas aceitam um JSON relaxado com comentários, mas um parser estrito vai rejeitar o arquivo.

Qual dos dois é mais rápido de interpretar?

A gramática do JSON é bem menor, e os navegadores trazem um parser nativo para ele, então costuma ser a opção mais rápida e segura para dados enviados pela rede. Parsers YAML têm muito mais regras a aplicar, da indentação à tipagem implícita.

Quando JSON é a melhor escolha

Quando YAML é a melhor escolha

Um registro, escrito dos dois jeitos

As mesmas configurações de site nos dois formatos. O YAML dispensa aspas e chaves e acrescenta um comentário; o JSON escreve por extenso cada string e cada nível de aninhamento.

Indentação de dois espaços, um comentário, uma lista e uma string de versão entre aspas para continuar sendo texto.

Nenhum comentário é possível, e toda chave e string leva aspas duplas.

Valores que mudam de tipo quando você esquece as aspas

Como um valor YAML sem aspas recebe um tipo, e a versão segura

Como este valor sem aspas será lido?

Digite um valor do jeito que ele apareceria depois dos dois-pontos em um arquivo YAML, sem aspas. O verificador aplica as regras do core schema do YAML 1.2, a lista de booleanos do YAML 1.1 e a gramática do JSON.

Valor sem aspas

Core schema do YAML 1.2

Parsers YAML 1.1

JSON, escrito como está

O mesmo valor em JSON

booleano {v} (o YAML 1.1 lê esta palavra como booleano)

Sem armadilha de booleano estilo yes/no para este valor

Valor JSON válido

Não é JSON válido sem aspas

O JSON não tem como escrever este número

Experimente um

Comece grátis · Sem cartão de crédito

Relacionados: Guias

Produto

Para quem é

Recursos

Recursos

Empresa

Mapa do site