A história por trás do formatador JSON
O JSON é hoje o formato falado pela maioria das APIs web e, no entanto, nenhum comité o desenhou. Foi notado mais do que inventado: um pequeno subconjunto de JavaScript que bastava para trocar dados entre programas.
Um formato descoberto
Por volta de 2001, Douglas Crockford e os colegas da State Software procuravam uma forma de um navegador e um servidor trocarem dados sem plugins. Usaram os literais de objeto e array que o JavaScript já entendia, deram um nome à ideia e publicaram a gramática em json.org, tão curta que cabe no verso de um cartão de visita.
Porque não há comentários
Cedo, Crockford retirou os comentários do JSON porque havia quem lá colocasse diretivas para o analisador, o que teria quebrado a interoperabilidade. O conselho dele era remover os comentários com um minificador antes de analisar. Por isso um formatador assinala um comentário como carácter inesperado, e por isso existem formatos como JSON5 e JSONC para ficheiros de configuração.
De uma página web a uma norma
O JSON foi descrito pela primeira vez na RFC 4627 em 2006. A Ecma publicou a ECMA-404 em 2013 e o IETF substituiu os textos anteriores pela RFC 8259 em 2017, que exige UTF-8 para JSON trocado entre sistemas. A gramática quase não mudou desde json.org: objetos, arrays, textos, números, true, false e null.
Números e caminhos
O JSON não limita os números, mas a maioria dos analisadores guarda-os como vírgula flutuante de 64 bits, por isso inteiros acima de 9007199254740991 podem perder precisão sem aviso. Identificadores grandes são muitas vezes enviados como texto. Para apontar para um valor, Stefan Goessner propôs o JSONPath em 2007, inspirado no XPath, que se tornou a norma RFC 9535 em 2024. Os caminhos copiados por este formatador seguem essa notação com cifrão e parênteses retos.
Perguntas frequentes
Quem inventou o JSON?
Douglas Crockford especificou e popularizou o JSON no início dos anos 2000, embora diga que o descobriu, porque é um subconjunto de JavaScript que já existia.
Porque o JSON não aceita vírgulas finais nem aspas simples?
A gramática foi mantida o mais pequena possível para que todas as linguagens a analisem da mesma maneira. Cada facilidade extra seria mais uma ocasião para dois analisadores discordarem.
O JSON é o mesmo que um objeto JavaScript?
Não. O JSON é texto. As chaves exigem aspas duplas, e funções, undefined, comentários, NaN e Infinity não são permitidos, embora o JavaScript os aceite no código.
Pronto para experimentar?
Abra o PictorX no seu navegador – sem instalação, sem necessidade de cartão de crédito para começar.
Abrir o formatador JSON