Conversor de JSON para YAML
Converta JSON em YAML e YAML em JSON enquanto escreve: edite qualquer um dos lados e o outro acompanha.
Fixe aqui as ferramentas. Ficam guardadas neste navegador.
Fixe uma ferramenta e o autocolante dela aparece aqui.
Converta JSON em YAML e YAML em JSON enquanto escreve: edite qualquer um dos lados e o outro acompanha.
O JSON e o YAML descrevem o mesmo tipo de dados: mapeamentos, listas, strings, números, booleanos e null. O YAML 1.2 foi escrito de modo a que o JSON seja um subconjunto dele, e acrescenta aquilo de que um ficheiro editado à mão precisa: comentários, indentação em vez de parênteses, strings de várias linhas, vários documentos num só ficheiro, e âncoras com aliases para reutilizar um valor.
Ao passar de JSON para YAML, todos os valores se mantêm, com uma exceção: uma chave que aparece duas vezes no mesmo objeto fica só com o último valor, porque um mapeamento YAML não pode repetir uma chave. Ao passar de YAML para JSON, mantêm-se apenas os dados: os comentários desaparecem, os aliases e as chaves de fusão << são substituídos pelos valores para que apontam, as tags personalizadas, como !Ref, são removidas e os seus valores mantêm-se, e as chaves que não são strings, como 1 ou true, passam a ser o seu texto.
O problema da Noruega. No YAML 1.1, as palavras sem aspas yes, no, on e off são booleanos, por isso uma lista de códigos de país que contenha no acaba com um false lá dentro. O YAML 1.2 mantém apenas true e false. O parser desta ferramenta segue o YAML 1.2, a menos que o documento comece com uma diretiva %YAML 1.1, por isso lê no como a string «no». Muitos parsers ainda em uso aplicam as regras da 1.1, por isso, quando esta ferramenta escreve YAML, põe essas strings entre aspas.
Números de versão. Um 1.10 sem aspas é um número de vírgula flutuante e, como número, vale 1.1. Os números de versão, os códigos postais e tudo o que apenas parece um número têm de ir entre aspas para continuarem a ser texto: version: "1.10".
O lado que editou por último é a origem, e o outro lado é reescrito a partir dele. Se não for possível analisar a origem, o erro aparece por baixo dela e o outro lado mantém a última conversão válida. As opções de indentação aplicam-se ao lado gerado; mudar a indentação do JSON também reindenta o JSON que escreveu, enquanto o YAML que escreveu nunca é reescrito, porque isso removeria os seus comentários.
As chaves ficam pela ordem da origem, incluindo as chaves formadas por algarismos, que um objeto JavaScript passaria para o início. Os inteiros maiores do que 2 elevado a 53 são copiados algarismo a algarismo nos dois sentidos. Um ficheiro YAML com vários documentos separados por --- passa a ser um array JSON, e a página indica-o. Uma chave usada duas vezes no mesmo mapeamento YAML é assinalada como erro. O YAML é lido e escrito pelo pacote open source yaml, que corre no seu navegador.
O YAML 1.2 foi concebido de modo a que o JSON seja um subconjunto dele, e um parser de YAML 1.2 lê um documento JSON. Uma exceção rara é um objeto que repete uma chave, o que o YAML não aceita. Pode experimentar aqui, colando JSON no lado YAML.
O JSON não tem nem uns nem outras. Os comentários são descartados, e cada alias é substituído por uma cópia do valor da respetiva âncora. Converter esse JSON de volta dá YAML com os mesmos dados, mas sem os comentários e as âncoras.
Sem aspas, o YAML lê 1.10 como um número de vírgula flutuante, e esse número é 1.1. Escreva-o como "1.10" para o manter como texto. O mesmo se aplica a valores como 010 ou 1e3.
Não. As duas conversões são feitas em JavaScript no separador do seu navegador, e a ferramenta não faz nenhum pedido de rede com o que escreve.
Abre numa janela própria e continua a funcionar offline.
Para instalar, toque no botão Partilhar e depois em «Adicionar ao ecrã principal».