No início dos anos 2000, as aplicações web precisavam mover dados estruturados entre servidores e navegadores. O XML tinha impulso, mas era verboso e exigia analisadores e esquemas; trabalhar com ele em JavaScript era penoso, e era exatamente aí que os dados precisavam chegar.
Douglas Crockford especificou o JSON como um formato leve construído sobre as duas estruturas universais, objetos de nome/valor e listas ordenadas, e deliberadamente o baseou em um subconjunto do Padrão da Linguagem de Programação JavaScript (ECMA-262, 3ª Edição). Um navegador podia, portanto, analisá-lo nativamente, e a especificação do json.org foi publicada abertamente para que qualquer pessoa a implementasse.
O JSON se espalhou primeiro entre os criadores de APIs web, depois por toda parte. Em 2017, o IETF publicou a RFC 8259, The JavaScript Object Notation (JSON) Data Interchange Format, que o descreve como derivado do Padrão da Linguagem de Programação ECMAScript, e ele se tornou o formato padrão de intercâmbio de dados para serviços web.
Ser um subconjunto da linguagem que vai te ler
A sintaxe nativa do JavaScript fez com que o cliente mais importante o analisasse sem nenhum mecanismo extra.
As duas estruturas de dados se mapeiam diretamente para os objetos e arrays de todas as linguagens mainstream.
Uma especificação aberta e simples removeu barreiras de licenciamento e de aprendizado.
O formato vencedor reduz o custo da própria primeira integração: ao corresponder à sintaxe nativa do consumidor dominante, o JSON tornou gratuita a primeira análise no lado do navegador, e cada porta posterior seguiu o exemplo.
A RFC 8259 formalizou o JSON como padrão do IETF em 2017, e praticamente toda linguagem de programação traz um analisador. Ele se tornou a carga útil padrão das APIs web e o modelo para uma geração de bancos de documentos NoSQL, enquanto o XML recuou para nichos centrados em documentos.
CONFIRA AS EVIDÊNCIAS
As fontes
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format IETF · datatracker.ietf.org
- Introducing JSON (json.org) JSON.org · json.org