Pular para o conteúdo

JSON ⇄ YAML conversor

JSON ⇄ YAML

Converte nos dois sentidos, preservando a ordem das chaves e escolhendo estilo de bloco ou de fluxo do lado YAML.

Converte entre YAML, JSON e TOML em qualquer direção, no navegador. Os parsers foram escritos para este site em vez de puxados do npm, e é por isso que a página consegue listar exatamente o que recusa — âncoras, tags, streams de vários documentos — em vez de lê-los errado em silêncio.

🔒 Roda inteiramente no seu navegadorjsonyamlconvert
De
Lendo como YAML.
Para

Entrada

Solte um arquivo .yaml, .json ou .toml

Lido nesta aba. Nada é enviado.

JSON de saída

Foram escritos aqui em vez de puxados do npm, o que quer dizer que o subconjunto é escolhido e não herdado. Tudo o que está nesta lista é recusado pelo nome em vez de ser lido errado.

Como usar

  1. Cole a configuração

    O formato é detectado a partir do texto, e o rótulo abaixo do seletor diz qual ele escolheu. Corrija se o palpite estiver errado: um arquivo JSON também é YAML válido, então um documento `{ }` pode ir para qualquer um dos lados.

  2. Escolha o destino

    YAML para um manifesto Kubernetes ou um arquivo de CI, JSON para qualquer coisa que um programa vá analisar, TOML para um arquivo de projeto Rust ou Python.

  3. Leia os avisos, não só a saída

    Uma conversão que deu certo ainda pode ter mudado o significado: um `null` perdido no caminho para TOML, um `yes` lido como a string que ele é sob YAML 1.2. Isso aparece em uma nota abaixo da saída em vez de ficar escondido.

  4. Abra a lista de escopo quando algo for recusado

    A seção recolhida no fim nomeia cada construção que estes parsers não tratam, e por quê. Uma recusa aponta para essa lista em vez de falhar com um erro de parser que você teria de interpretar.

Perguntas frequentes

Por que minhas âncoras e aliases são recusados?

Porque expandir `*base` corretamente significa implementar a semântica de merge do YAML, e errar isso de forma sutil produz um arquivo que parece certo e faz deploy de outra coisa. Expandi-los à mão antes de colar é confiável; adivinhar aqui não é. A mesma razão cobre `<<: *base`.

Por que `yes` virou uma string?

Porque o esquema core do YAML 1.2 diz que é: só `true` e `false` são booleanos. Parsers de YAML 1.1, incluindo alguns ainda em produção, leem como booleano. A diferença é anunciada nos avisos quando ocorre, porque é exatamente o tipo de coisa que muda um deploy.

O que acontece com um `null` a caminho do TOML?

Ele é descartado e um aviso diz isso. TOML não tem valor nulo nenhum, então as opções eram omitir a chave ou inventar um marcador, e inventar um colocaria uma string literal `"null"` na configuração de alguém.

Os comentários são preservados?

Não. A conversão passa por um modelo de dados, e comentários não são dados: JSON não tem onde colocá-los. Se você precisa dos comentários, os formatadores de YAML e TOML deste site reindentam no lugar e os mantêm.

Pode receber de

Em seguida

Estas aceitam o que esta ferramenta produz, então o resultado pode ir direto.