CIRCUITO
CARIOCA TI · DOCUMENTAÇÃO
♙
Dev Tool

Formatador JSON e YAML

Valide e formate JSON, converta JSON para YAML e converta YAML para JSON quando o servidor possuir a extensão PHP YAML.

JSONYAMLPretty PrintValidationRFC 8259YAML 1.2

Processador JSON e YAML

O suporte a JSON é nativo do PHP. A leitura completa de YAML só é habilitada quando o servidor fornece a extensão PECL yaml baseada em LibYAML.

Entrada máxima: 1 MiB.
JSON · RFC 8259

JSON é um formato de intercâmbio de dados, não apenas “sintaxe de objeto JavaScript”

A RFC 8259 define um texto JSON como um valor serializado. Portanto, um documento JSON no nível raiz pode ser objeto, array, string, número, true, false ou null. JSON trocado entre sistemas fora de um ecossistema fechado deve usar UTF-8 para interoperabilidade.

PRETTY PRINT

Formatar muda a apresentação, não o modelo de dados pretendido

Pretty-print adiciona indentação e quebras de linha para facilitar a leitura. Esta página analisa o documento e o serializa novamente, portanto não deve ser usada quando for necessário preservar byte a byte, manter whitespace original ou conservar exatamente a forma textual dos números.

NOMES DUPLICADOS

JSON válido ainda pode causar problemas de interoperabilidade

A RFC 8259 diz que os nomes dos membros de um objeto devem ser únicos. Quando há nomes duplicados, parsers divergem: alguns mantêm apenas o último valor, outros retornam erro e outros preservam todos os pares. Portanto, uma ferramenta que analisa e reformata pode perder informação de objetos JSON com nomes duplicados mesmo quando a entrada é aceita sintaticamente.

NÚMEROS GRANDES

A sintaxe numérica do JSON não garante precisão numérica arbitrária

A RFC 8259 permite que implementações imponham limites de faixa e precisão e observa que IEEE 754 binary64 é uma referência comum de interoperabilidade. Esta página solicita ao PHP que preserve como strings inteiros que excedam sua faixa nativa durante a leitura, reduzindo truncamentos acidentais, mas conversões entre JSON e YAML ainda podem alterar a semântica de tipos para valores numéricos extremos.

YAML 1.2.2

YAML é mais rico que JSON

YAML 1.2 suporta mappings, sequências e escalares, mas seu modelo de representação também inclui recursos como tags, âncoras e aliases. YAML 1.2 define um schema JSON e foi projetado considerando compatibilidade com JSON, porém um documento YAML geral pode expressar detalhes de representação que não possuem correspondência um-para-um com JSON simples.

ANCHORS · ALIASES · TAGS

Converter YAML para JSON pode perder informações mesmo quando a leitura funciona

Âncoras identificam nós para aliases posteriores e tags carregam metadados de tipo ou de aplicação. Depois que YAML é composto em valores nativos do PHP e serializado como JSON, detalhes de apresentação, nomes de âncoras e semânticas específicas de tags YAML podem deixar de existir. Use este conversor para transformar dados, não como editor YAML com round-trip perfeito.

CAPACIDADE DO SERVIDOR

Por que YAML → JSON pode ficar indisponível nesta instalação

O núcleo do PHP fornece funções JSON, enquanto as funções YAML usadas aqui vêm da extensão PECL yaml e são processadas por LibYAML. Quando essa extensão não está instalada, a página recusa a leitura completa de YAML em vez de implementar um parser parcial e frágil que poderia reinterpretar silenciosamente dados de configuração.

YAML NÃO CONFIÁVEL

Leitura de YAML exige uma decisão de segurança no servidor

O manual do PHP para yaml_parse() alerta que processar entrada não confiável é perigoso quando o suporte a unserialize para nós !php/object está habilitado por yaml.decode_php. Como esta é uma ferramenta web pública, a página recusa a leitura YAML quando essa configuração está ativa em vez de aceitar esse risco.

MODO FALLBACK

O fallback interno é propositalmente unidirecional e conservador

Sem PECL yaml, JSON → YAML continua funcionando para o modelo de dados JSON. O fallback coloca strings e chaves de mappings entre aspas, preserva booleanos e null explicitamente e emite arrays e mappings aninhados. Ele não afirma suportar âncoras, aliases, tags, diretivas, block scalars, comentários ou entrada YAML arbitrária.

JSON_VALIDATE · PHP 8.3+

Validação isolada pode evitar construir toda a estrutura decodificada

O PHP 8.3 introduziu json_validate(), que pode validar a sintaxe usando menos memória quando o valor analisado não é necessário. Esta página também informa metadados estruturais após a validação, então faz uma única decodificação em vez de chamar json_validate() e depois analisar a mesma entrada novamente.

FAQ

Perguntas frequentes sobre JSON e YAML

O que este formatador JSON faz?+

Ele analisa o JSON e o serializa novamente com indentação, quebras legíveis, caracteres Unicode e barras não escapadas quando o PHP pode fazer isso com segurança.

Um documento JSON pode conter somente uma string, número ou null?+

Sim. A RFC 8259 define um texto JSON como um valor serializado, portanto a raiz não precisa ser objeto ou array.

JSON exige UTF-8?+

A RFC 8259 exige UTF-8 para JSON trocado entre sistemas fora de um ecossistema fechado. A leitura JSON do PHP também espera strings UTF-8.

Nomes duplicados em objetos JSON são válidos?+

A RFC 8259 diz que os nomes dos membros de um objeto devem ser únicos. Parsers se comportam de formas diferentes diante de duplicatas, portanto elas são um risco de interoperabilidade e podem ser perdidas ao analisar e reformatar.

A formatação preserva o JSON original byte a byte?+

Não. Analisar e serializar novamente altera whitespace e pode normalizar detalhes da representação. Não use quando a preservação exata do código-fonte for necessária.

JSON pode conter comentários?+

O JSON padrão definido pela RFC 8259 não possui sintaxe de comentários. Formatos de configuração que aceitam comentários usam uma extensão ou outro formato.

JSON aceita vírgula no último item?+

Não. Trailing comma não faz parte da gramática JSON da RFC 8259.

Por que números JSON muito grandes podem causar problemas?+

JSON define a sintaxe dos números, mas implementações podem impor limites de faixa e precisão. Esta página solicita ao PHP que preserve como strings inteiros fora da faixa nativa durante a leitura.

PHP precisa de extensão para JSON?+

PHP moderno fornece funcionalidades JSON no runtime padrão. Esta página usa json_decode() e json_encode() com exceções para tratamento confiável de erros.

O que é json_validate()?+

O PHP 8.3 introduziu json_validate() para validar sintaxe sem construir o valor decodificado. Como esta página também calcula metadados estruturais, ela decodifica uma vez em vez de analisar duas vezes.

Por que YAML → JSON pode ficar indisponível?+

O parser YAML usado aqui vem da extensão PECL yaml baseada em LibYAML. Se ela não estiver instalada, a página não tenta fazer parsing completo de YAML.

JSON → YAML funciona sem a extensão YAML?+

Sim, para dados JSON. Um fallback conservador emite mappings, sequências e escalares compatíveis com o modelo JSON, mas não é um emissor YAML geral.

O fallback suporta âncoras e aliases?+

Não. O fallback apenas serializa o modelo de dados JSON e não implementa âncoras, aliases, tags, diretivas ou comentários YAML.

O que são âncoras e aliases no YAML?+

Uma âncora identifica um nó e um alias pode referenciar esse nó posteriormente na serialização YAML. Essas relações não possuem correspondência perfeita em JSON comum.

YAML e JSON são formatos equivalentes?+

Não. YAML 1.2 possui forte compatibilidade com JSON, mas oferece recursos adicionais de representação e a conversão pode perder informações específicas de YAML.

Comentários YAML sobrevivem à conversão para JSON?+

Não nesta conversão de dados. Comentários pertencem à apresentação do documento e não são representados pelos valores JSON comuns.

Por que YAML → JSON pode perder informações?+

Tags, aliases, nomes de âncoras, estilos de escalares, comentários e outros detalhes do YAML original podem desaparecer quando o documento vira valores nativos e depois é serializado como JSON.

É seguro analisar YAML enviado por usuários?+

Depende da configuração do parser. O manual do PHP alerta especificamente sobre yaml_parse() com entrada não confiável quando a desserialização de !php/object está habilitada por yaml.decode_php. Esta página recusa o parsing nessa configuração.

A página suporta vários documentos YAML no mesmo fluxo?+

Não. O conversor aceita propositalmente um documento YAML por vez para que a saída JSON tenha uma única raiz sem ambiguidade.

Quais padrões são relevantes aqui?+

A RFC 8259 define JSON. YAML 1.2.2 é a revisão da especificação YAML referenciada pela página; parsing e emissão YAML no PHP dependem da implementação PECL yaml/LibYAML instalada.