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

  1. RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format IETF · datatracker.ietf.org
  2. Introducing JSON (json.org) JSON.org · json.org