UltKit

Converter JSON para YAML

Transforme JSON em YAML que as pessoas conseguem ler, revisar e comentar. Envie arquivos .json e receba .yaml indentado com as mesmas chaves, valores e ordem, pronto para colocar em um repositório.

Conversor de dados

ou solte arquivos CSV, TSV, TXT … aqui ·

Até 95 MB por arquivo· Até 20 arquivos· Apagados após 30 minutos

Saída

Os arquivos são processados em nossos servidores e apagados após 30 minutos.

Como usar esta ferramenta

  1. 1

    Adicione os arquivos JSON

    Envie respostas de API, configurações exportadas ou manifestos gerados em .json, até 20 arquivos de 95 MB cada. Cada arquivo deve conter um valor JSON válido.

  2. 2

    Mantenha os padrões

    O YAML já vem selecionado em Converter para. Para um arquivo de configuração, não é preciso mudar mais nada; a saída usa indentação de dois espaços.

  3. 3

    Converta e faça o commit

    Clique em Converter para YAML, baixe os arquivos .yaml, adicione comentários onde o próximo leitor precisar e faça o commit.

Resposta

Como converter JSON para YAML?

Envie o arquivo .json e clique em Converter para YAML. Objetos viram blocos indentados chave: valor, arrays viram listas com hifens, e textos que o YAML poderia interpretar errado mantêm as aspas.

Por que converter JSON para YAML em arquivos de configuração

A maior parte do JSON é produzida por software: uma resposta de API, uma exportação de configurações, a saída de um gerador. A maior parte do YAML é mantida por pessoas. A conversão normalmente marca o momento em que os dados deixam de ser saída de máquina e passam a ser algo que uma equipe cuida, como um manifesto de deploy versionado no Git, um pipeline de CI ou um conjunto de variáveis do Ansible.

Um caso típico: você chama uma API de nuvem, recebe uma descrição de 200 linhas de um recurso em JSON e quer guardá-la como infraestrutura como código. Converter gera um arquivo sem chaves e vírgulas, em que a mudança de uma linha gera um diff de uma linha e valores estranhos podem ser explicados em comentários. O mesmo vale para fixtures de teste e arquivos de tradução editados por quem não é desenvolvedor. Quando o que você precisa é de uma tabela plana, para uma planilha ou um relatório, JSON para CSV é a melhor opção.

Ferramentas que usam arquivos de configuração em YAML

Onde o YAML convertido costuma ser usado
ÓrgãoExigênciaFonte
GitHub ActionsOs workflows ficam em .github/workflows como arquivos .yml ou .yamlGitHub Docs
GitLab CI/CDO pipeline é definido em .gitlab-ci.yml na raiz do repositórioGitLab Docs
Docker ComposeOs serviços são descritos em compose.yaml (antes docker-compose.yml)Docker Docs
AnsiblePlaybooks e arquivos de variáveis são escritos em YAMLAnsible Docs
KubernetesOs manifestos aceitam JSON ou YAML; a documentação e os Helm charts usam YAMLKubernetes

Exemplo de JSON para YAML com valores complicados

Saída YAML para {"name":"api","version":"1.10","debug":false,"tags":["web","br"],"country":"NO"}
name: api
version: "1.10"
debug: false
tags:
  - web
  - br
country: "NO"

O que o YAML oferece

  • Comentários com #
  • Diffs menores na revisão de código
  • Sem chaves, vírgulas ou aspas na maioria das linhas
  • Texto de várias linhas com blocos escalares |

O que observar

  • A indentação tem significado, então um espaço a mais muda a estrutura
  • Tabulações não são permitidas na indentação
  • Textos sem aspas podem ser lidos como números ou booleanos
  • Parsers mais lentos e menos uniformes que os do JSON

O exemplo mostra por que não basta localizar e substituir as chaves. A versão 1.10 é um texto no JSON; escrita sem aspas no YAML, seria lida como o número 1.1. NO, o código ISO da Noruega, seria lido como false por parsers YAML 1.1, como o PyYAML. Os dois mantêm as aspas, enquanto números e booleanos de verdade ficam sem elas.

JSON e YAML comparados

JSON

JavaScript Object Notation (JSON)

JSON é um formato de texto leve para dados estruturados, popularizado por Douglas Crockford no início dos anos 2000 e padronizado como RFC 8259 e ECMA-404. Ele representa objetos, arrays, strings, números, booleanos e null com uma sintaxe simples e legível. É o formato padrão de APIs web, arquivos de configuração e troca de dados entre aplicativos em praticamente todas as linguagens de programação. Não tem comentários, datas nem esquemas embutidos, e arquivos grandes e aninhados são difíceis de ler sem um visualizador.

Compressão
–
Transparência
–
Animação
–
Lançamento
2001 · Douglas Crockford
Conversor de JSON

YAML

YAML

YAML ("YAML Ain't Markup Language") é um formato de dados fácil de ler, lançado em 2001. Ele usa indentação em vez de chaves e colchetes, aceita comentários e é um superconjunto do JSON. É muito usado para configuração no Docker Compose, Kubernetes, GitHub Actions e em muitos aplicativos. Como depende de espaços em branco, um único espaço fora do lugar pode quebrá-lo, e alguns valores, como "no" ou datas, podem ser interpretados de forma inesperada.

Compressão
–
Transparência
–
Animação
–
Lançamento
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
Conversor de YAML

As pessoas convertem JSON em YAML quando dados gerados ou vindos de uma API precisam virar um arquivo de configuração que humanos mantêm, revisam em pull requests e anotam com comentários.

Perguntas sobre converter JSON para YAML

JSON já é YAML válido?

No YAML 1.2, sim: a revisão de 2009 foi escrita para que todo documento JSON também seja um documento YAML. Você poderia colar o JSON em um arquivo .yaml e a maioria das ferramentas aceitaria. A conversão serve à legibilidade: o estilo em bloco, sem chaves, aspas e vírgulas, é o que revisores e o próximo mantenedor esperam.

Por que alguns valores ficam entre aspas no YAML?

Porque, sem aspas, o YAML os leria como outro tipo. Uma versão como 1.10 viraria o número 1.1, e yes ou off poderiam virar booleanos em parsers mais antigos. Textos que parecem números, datas ou booleanos precisam de aspas para continuar sendo texto, por isso uma conversão cuidadosa as mantém.

Posso adicionar comentários depois de converter?

Sim, e esse é um motivo comum para converter. Escreva # seguido da sua observação no fim de uma linha ou em uma linha própria. O JSON não tinha como explicar por que um valor foi definido; o YAML tem, o que facilita revisões e passagens de bastão.

Por que meu YAML dá erro de caractere de tabulação?

A especificação do YAML proíbe tabulações na indentação; só espaços valem. O conversor grava espaços, mas um editor configurado para inserir tabulações pode quebrar o arquivo na próxima edição. Configure o editor para usar espaços em arquivos .yaml.

O Kubernetes vai aceitar o manifesto convertido?

O kubectl lê JSON e YAML, então os dados são os mesmos nos dois casos; a versão em YAML é apenas a que a maior parte da documentação, dos Helm charts e das revisões de código usa. Se depois você precisar do JSON de volta para o jq ou uma chamada de API, YAML para JSON faz o caminho inverso.