Saltar para o conteúdo
BCBinary Code Translator
Menu

Utilitário de dados

Conversor bidirecional JSON e YAML

Converta JSON e YAML com js-yaml, esquema restrito compatível com JSON e verificações de chaves perigosas, valores não representáveis e aliases cíclicos.

A conversão é local. YAML é analisado como dados; os tipos JavaScript personalizados não são ativados.

Como converter JSON e YAML com segurança

Selecione a direção, cole um documento e converta. O lado YAML aceita apenas escalares, sequências e mapas representáveis em JSON, evitando etiquetas JavaScript e tipagem implícita inesperada.

  1. Escolha JSON para YAML para leitura humana, ou YAML para JSON para APIs e ferramentas.
  2. Cole um documento completo e válido no esquema restrito.
  3. Reveja o resultado; objetos e arrays são preservados e aliases sem ciclo são expandidos.
  4. Corrija alertas de inteiros grandes e erros de etiquetas, chaves bloqueadas, ciclos ou valores não suportados.

Exemplos e comportamento esperado

Entrada Saída Observações
{"name":"api","ports":[80,443]} name: api ports: - 80 - 443 Os objetos tornam-se mapas e os arrays tornam-se sequências.
enabled: true retries: 3 { "enabled": true, "retries": 3 } Booleanos e números compatíveis preservam o tipo.
message: Olá 👋 {"message":"Olá 👋"} Unicode é preservado nos dois formatos.
date: 2026-07-29 {"date":"2026-07-29"} Neste esquema, texto com aparência de data continua cadeia de texto.
payload: !!js/function function(){} YAML rejeitado Etiquetas específicas de JavaScript não são permitidas.
__proto__: polluted: true Chave perigosa rejeitada Chaves de protótipo são bloqueadas antes do JSON.

Modelo de dados e esquema escolhido

O conversor usa JSON_SCHEMA do js-yaml, não o esquema padrão mais amplo. São aceites mapas com chaves de texto, sequências, cadeias de texto, números finitos, booleanos e null. Isto evita construir automaticamente datas, binários, expressões regulares ou valores específicos de JavaScript.

YAML é mais abrangente do que JSON, pelo que um documento YAML válido pode ser rejeitado. Etiquetas personalizadas e tipos sem representação fiável em JSON ficam fora do âmbito. Se um produto depender deles, use o analisador oficial e reveja o modelo de segurança.

  • Chaves de mapas precisam ser cadeias de texto JSON.
  • Funções, símbolos, undefined e números não finitos não são aceites.
  • Escalares com aparência de data permanecem texto.

Mapas, sequências, âncoras e aliases

Objetos JSON correspondem a mapas YAML e arrays a sequências. A ordem pode ser preservada para apresentação, mas a semântica não deve depender dela. Aliases podem criar referências partilhadas; o conversor percorre o resultado e deteta ciclos.

Um alias sem ciclo só pode aparecer em JSON pela duplicação dos dados. Autorreferências e ciclos não podem ser serializados e são rejeitados. Em JSON para YAML, a geração de referências é desativada para não criar âncoras inesperadas.

  • Aliases são recurso de YAML, não de JSON.
  • Grafos cíclicos são rejeitados antes de JSON.stringify.
  • Ordem de chaves normalmente é apresentação.

Poluição de protótipo

__proto__, prototype e constructor podem ser perigosos quando dados não fiáveis são combinados com objetos JavaScript. A ferramenta bloqueia esses nomes em qualquer nível e reconstrói mapas sem protótipo.

É uma defesa adicional, não um substituto para o sistema recetor. O destino deve validar um esquema de lista permitida e evitar combinações recursivas de chaves arbitrárias em objetos privilegiados.

  • Não combine configurações não fiáveis com valores predefinidos.
  • Valide nomes e tipos no destino.
  • Mantenha o analisador YAML atualizado.

Usos comuns

É usado para transformar exemplos de API em documentação YAML, preparar rascunhos de configuração, criar pedidos JSON e entender a relação entre recuo, sequências e mapas.

Em produção, reveja comentários perdidos, aspas, tipos e o esquema específico do produto. Implementações YAML diferentes podem interpretar escalares de outra forma, por isso teste no software final.

  • Criar um pedido JSON a partir de YAML.
  • Tornar um exemplo JSON mais legível.
  • Verificar o tipo de cada escalar.
  • Remover aliases antes de um sistema apenas JSON.

Erros e limites de compatibilidade

São informados JSON inválido, recuo ou aspas YAML incorretos, etiquetas não suportadas, chaves perigosas, valores incompatíveis e ciclos. Tabulações no recuo e dois-pontos ambíguos são causas comuns.

Comentários, nomes de âncoras, estilo de escalares, diretivas e espaço exato não são preservados. Vários documentos separados por --- também não são tratados. É um conversor de dados compatíveis com JSON, não um formatador YAML sem perda.

  • Comentários se perdem ao passar por JSON.
  • !!js/function é rejeitado.
  • Valide a configuração com a aplicação antes do deploy.

Segurança, privacidade e recursos

A análise sintática ocorre no separador do navegador, sem envio nem persistência intencional. O esquema é restrito e uma verificação posterior bloqueia chaves perigosas, objetos não suportados e ciclos. Os tipos executáveis não são ativados.

Grafos de alias grandes e estruturas profundas podem consumir memória. Não processe ficheiros ilimitados de atacantes numa estação privilegiada. Remova segredos antes de partilhar a saída.

  • Imponha limites de tamanho e profundidade nas aplicações de destino.
  • Ser texto não torna YAML seguro.
  • Evite chaves privadas em capturas e tickets.

Diferenças para formatação e CSV

O formatador JSON só muda espaços; este conversor muda a linguagem de serialização. CSV exige registos tabulares, cabeçalhos e uma estratégia para aninhados, enquanto YAML preserva a estrutura completa compatível com JSON.

Use validadores YAML do produto para etiquetas especiais, esquema para regras de campos e o formatador JSON se o problema for apenas sintático. A ferramenta mais restrita reduz alterações semânticas.

Perguntas frequentes

A conversão YAML pode executar código?

Não. JSON_SCHEMA é usado sem etiquetas JavaScript e depois chaves perigosas, valores não suportados e ciclos são rejeitados. O destino ainda deve validar os dados.

Porque é que uma data YAML se torna uma cadeia de texto JSON?

O esquema compatível com JSON não cria objetos Date. 2026-07-29 permanece texto; outros esquemas YAML podem interpretá-lo de outra forma.

Comentários são preservados?

Não. Comentários, estilo e espaçamento exato não existem no modelo JSON e não podem ser reconstruídos depois da análise sintática.

O que ocorre com âncoras e aliases?

Aliases sem ciclo são duplicados como dados. Ciclos são rejeitados. A saída YAML também não cria âncoras automaticamente.

Porque é que __proto__ e constructor são rejeitados?

São nomes relacionados a ataques de poluição de protótipo. Bloqueá-los reduz risco, embora o receptor também precise de tratamento seguro.

Posso usar a saída diretamente em produção?

Trate como rascunho. Valide com a aplicação, o esquema e a implementação YAML, pois comentários, etiquetas especiais e múltiplos documentos não são preservados.

Ferramentas relacionadas

Ver todas as ferramentas

Preferências de cookies

Gerir as preferências de cookies. Os cookies necessários não podem ser desativados.

Necessários

Obrigatório

Necessários para seleção de idioma, escolhas de privacidade e funcionalidades básicas do site.

Cookies: NEXT_LOCALE

Análises

Cookies opcionais de análise ajudam a entender o tráfego e melhorar o site.

Cookies: _ga, _gid, _gat, _clck, _clsk

Publicidade

Cookies opcionais de publicidade podem ser usados para mostrar anúncios relevantes e medir desempenho.

Cookies: __gads, _gcl_au, IDE