Neste artigo
O que e JSON5?
JSON5 e um superconjunto de JSON que adiciona funcionalidades inspiradas na sintaxe ECMAScript 5.1. Foi criado para tornar o JSON mais amigavel para arquivos de configuração e outros casos onde pessoas escrevem e leem JSON manualmente. Todo documento JSON valido também e JSON5 valido, mas JSON5 adiciona comentarios, virgulas finais, chaves sem aspas e outras conveniencias.
A especificação JSON5 foi finalizada em 2018 e e amplamente adotada nas ferramentas JavaScript. Ferramentas de build como Babel, Next.js e Webpack aceitam arquivos de configuração JSON5. Converter JSON5 para JSON padrão e necessario ao interoperar com sistemas que so entendem JSON estrito, como APIs, bancos de dados e a maioria das linguagens de programação.
Funcionalidades do JSON5 explicadas
JSON5 adiciona varias extensões de sintaxe que tornam os arquivos de configuração mais faceis de escrever e manter.
- Comentarios — comentarios de linha unica (//) e multilinha (/* */) sao permitidos, tornando os arquivos de configuração autodocumentados
- Virgulas finais — arrays e objetos podem ter uma virgula após o ultimo item, reduzindo o ruido nos diffs
- Chaves sem aspas — chaves de objetos que sao identificadores ECMAScript validos não precisam de aspas
- Números hexadecimais — valores numericos podem ser escritos como 0xFF, util para codigos de cor na configuração
- Strings multilinha — valores de string podem abranger multiplas linhas usando continuacao com barra invertida
- Valores numericos especiais — Infinity, -Infinity e NaN sao literais numericos validos em JSON5
Experimente gratuitamente — sem cadastro
Converter JSON5 para JSON →Onde o JSON5 e usado
JSON5 e usado principalmente nas ferramentas do ecossistema JavaScript onde arquivos de configuração sao escritos e mantidos por desenvolvedores.
- Babel — arquivos .babelrc e babel.config.json5 suportam sintaxe JSON5 para configuração de build com comentarios
- TypeScript — tsconfig.json suporta funcionalidades JSON5 como comentarios e virgulas finais (tecnicamente JSONC)
- Chrome DevTools — perfis de limitação de rede e outras configurações usam formato JSON5
- Next.js — arquivos de configuração aceitam JSON5 para configuração amigavel com documentação inline
Perguntas frequentes
Os navegadores podem analisar JSON5 nativamente?
Não. Os navegadores so suportam JSON padrão via JSON.parse(). Para analisar JSON5 em um navegador ou aplicação Node.js, você precisa do pacote npm json5. Ferramentas de build que suportam JSON5 lidam com a analise internamente durante sua etapa de build.
Qual e a diferença entre JSON5 e JSONC?
JSONC (JSON com comentarios) so adiciona suporte a comentarios ao JSON. JSON5 e um superconjunto mais amplo que adiciona comentarios, virgulas finais, chaves sem aspas, números hexadecimais, strings multilinha e valores numericos especiais. O tsconfig.json do TypeScript e settings.json do VS Code usam JSONC, enquanto Babel e outras ferramentas usam JSON5 completo.
JSON5 e o mesmo que YAML?
Não. JSON5 permanece proximo da sintaxe JSON com pequenas adições ergonomicas. YAML e um formato completamente diferente com estrutura baseada em espaços em branco, ancoras e muitas mais funcionalidades. JSON5 e mais fácil de converter para JSON porque e um superconjunto estrito. A conversão de YAML para JSON pode ter perdas porque YAML suporta tipos de dados que JSON não tem.