- JSON5 é um formato que estende o formato de arquivo JSON para facilitar a escrita e a manutenção por pessoas
- Não é usado para comunicação entre máquinas
- Iniciado em 2012, em 2022 ultrapassou 65 milhões de downloads por semana e está entre os 0,1% pacotes mais dependidos no npm
- Adotado por grandes projetos como Chromium, Next.js, Babel, Retool e WebStorm
- Compatível nativamente com plataformas Apple como macOS e iOS
- Características do JSON5
- É um superconjunto de JSON e inclui parte da sintaxe do ECMAScript 5.1
- Arquivos JSON5 são sempre arquivos ES5 válidos
- Recursos estendidos do ECMAScript 5.1
- Objetos
- Chaves de objeto podem ser
IdentifierName do ECMAScript 5.1
- Permite uma única vírgula à direita em objetos
- Arrays
- Permite uma única vírgula à direita em arrays
- Strings
- Strings podem ser envolvidas por aspas simples
- Podem se estender por várias linhas com escape de quebra de linha
- Podem incluir escapes de caracteres
- Números
- Podem ser representados em hexadecimal
- Podem ter ponto decimal inicial ou final
- Podem incluir infinito positivo, infinito negativo e NaN do IEEE 754
- Podem começar com sinal de mais explícito
- Comentários
- Permite comentários de uma linha e de múltiplas linhas
- Espaços em branco
- Permite caracteres adicionais de espaço em branco
- API
JSON5.parse(): analisa uma string JSON5 e cria um valor ou objeto JavaScript
JSON5.stringify(): converte um valor JavaScript em uma string JSON5
- CLI
- Fornece uma CLI para converter JSON5 em JSON ou validar a sintaxe de documentos JSON5
- Compatibilidade com ECMAScript
- JSON5 foi projetado para ser totalmente compatível com ES5, mas os caracteres U+2028 e U+2029 não são permitidos no ES5
- No ES2019 esses caracteres passaram a ser permitidos, tornando JSON e JSON5 totalmente compatíveis com ES2019
- Licença
- Disponível sob a licença MIT.
2 comentários
O que aprendi criando o JSON5: ignore os haters
Comentários do Hacker News
\Upara caracteres Unicode fora do BMP