O código desta página não rodou.

Abrir o index.html direto de uma pasta bloqueia os módulos de JavaScript, então não vai acontecer nada quando você escolher um arquivo. Sirva a pasta por http:

powershell -ExecutionPolicy Bypass -File serve.ps1

Depois abra http://localhost:8080/.

YAML para JSON — e de JSON de volta para YAML

Os dois sentidos, e ele diz o que cada um custa. Nada disso é colado no servidor de outra pessoa.

Idioma: Português
Ver o código-fonte
Seus arquivos YAML e JSON são processados no navegador. Sem envio para processamento.

Converter é aritmética sobre um texto, feita aqui, nesta página. Os dois analisadores são escritos à mão e estão em src/ — shared/parse-yaml.js e shared/parse-json.js — e não há mais nada. Esta ferramenta não tem função de rede de espécie alguma — nada para buscar, nada para enviar — e aqui isso importa mais do que em quase qualquer outro canto deste site: um arquivo YAML costuma ser uma configuração de deploy, e uma configuração de deploy costuma estar cheia de nomes de host, nomes de bucket e segredos.

Verificação ao vivo: verificando…

Offline: verificando…

Você não precisa acreditar na nossa palavra: abra o DevTools, olhe a aba de rede e converta alguma coisa. Nenhuma requisição carrega um caractere do que você colou. Ou desconecte da internet e converta assim mesmo.

1 Escolha o sentido

Indentação A tabulação só é oferecida para JSON. YAML é definido em termos de espaços e uma tabulação não é indentação válida nele.

Ordenar as chaves de cada objeto Pelo jeito como as chaves se leem, e não pelos pontos de código delas, então item2 vem antes de item10.

2 Cole aqui

vazio

3 Leve o resultado

Nada ainda.

 

Ver como Markdown

Como converter YAML para JSON sem enviar o arquivo

  1. Escolha o sentido. YAML para JSON ou JSON para YAML. A observação embaixo do menu diz o que aquele sentido perde antes de você colar qualquer coisa, e não depois.
  2. Cole, ou arraste o arquivo. Qualquer coisa que você consiga selecionar e copiar serve. Um arquivo arrastado para o seletor é lido pelo seu próprio navegador e colocado na caixa — não existe etapa de envio para pular — e uma extensão .json ou .yaml já escolhe o sentido para você.
  3. Escolha a indentação. Dois espaços, quatro, ou uma tabulação. A tabulação só é oferecida para JSON: YAML é definido em termos de espaços, e uma tabulação não é indentação válida nele.
  4. Leia o erro onde o erro está. Um analisador que falha aqui diz o que encontrou e em que linha e coluna, em vez de “token inesperado na posição 4193”. Isso normalmente basta para consertar um arquivo de configuração sem abrir mais nada.
  5. Leve o resultado. Copie, ou baixe como arquivo, com o nome do formato em que ele saiu.

A versão longa

Como converter entre YAML e JSON Converta um subconjunto de YAML para JSON ou o contrário no navegador. Confira comentários perdidos, construções recusadas e texto numérico antes de reutilizar.

Perguntas

Meu YAML é enviado para algum lugar?

Não. Os dois analisadores e os dois impressores desta página são funções que rodam no seu próprio navegador, no seu próprio hardware. Esta ferramenta não tem função de rede de espécie alguma — nunca busca nada e nunca envia nada — e a Content-Security-Policy da página lista todos os endereços que ela pode contatar, e nenhum deles é nosso. É justamente por isso que se usa isto para uma configuração de deploy: elas vivem cheias de nomes de host, nomes de bucket e de vez em quando um segredo que alguém queria mover, e colar uma no conversor de outra pessoa é entregá-la.

O que se perde ao converter YAML para JSON?

JSON perde os comentários. Este parser aceita deliberadamente um subconjunto de YAML 1.2 e recusa âncoras, aliases e tags em vez de escolher a expansão ou conversão de tipo. JSON representa uma árvore de valores; YAML também representa nós compartilhados e valores tipados. Fluxos de vários documentos são recusados em vez de criar um array inventado. JSON para YAML mantém os valores representados. A especificação YAML define o formato completo.

Meu YAML diz no e o JSON saiu como texto. Por quê?

YAML 1.1 lia yes, no, on e off como booleanos, transformando o código da Noruega em false. Este subconjunto usa YAML 1.2: essas palavras ficam como strings, true e false são booleanos, null e ~ são null e escalares numéricos são números. A escrita YAML coloca palavras ambíguas entre aspas para leitores com regras antigas.

Ele mantém a ordem das minhas chaves?

Mantém, nos dois sentidos, e isso é mais difícil do que parece. Um conversor construído em cima do JSON.parse caladinho joga para a frente as chaves que parecem inteiros, então {"10":a,"2":b} volta como {"2":b,"10":a}. Os números mantêm os dígitos que você digitou, então um id de conta de vinte dígitos não perde os três últimos para um double. Se você quiser ordenar, tem uma caixinha, e ela ordena pelo jeito como as chaves se leem, não pelos pontos de código.

Ele converte vários documentos YAML de uma vez?

Não, e ele diz isso em vez de escolher um. Um arquivo com separadores --- contém mais de um documento, e JSON não tem nenhuma forma que signifique “vários documentos” — um array seria uma afirmação que o arquivo nunca fez. Converta um de cada vez.

Por que não tem um formatador de YAML aqui?

Porque YAML não tem uma forma espremida que valha a pena escrever — a curta é o estilo de fluxo, que é ilegível, e ilegível é o oposto do motivo de manter um arquivo em YAML. Organizar JSON, XML, HTML e CSS é o trabalho do formatador de JSON, e ele organiza YAML também.

De que tamanho pode ser o arquivo?

Não há limite nenhum posto aqui, porque não há servidor pagando por um. O teto de verdade é o seu próprio computador: alguns megabytes de YAML vão bem, e num documento muito longo a página espera uma pausa na sua digitação antes de converter, em vez de disputar o teclado com você.

É grátis, e preciso de conta?

É grátis, e não tem conta, nem login, nem período de teste, nem limite de quanto você cola. O site exibe publicidade, e é ela que paga a conta; os anúncios não recebem nada sobre o seu texto.

Funciona offline?

Funciona. Carregue a página uma vez, desligue a internet e ela continua funcionando. Esse é também o jeito mais simples de provar que nada é enviado: uma ferramenta que mandasse a sua configuração embora para converter pararia no instante em que você desconectasse.