在 2000 年代初期,Web 应用程序需要在服务器和浏览器之间传输结构化数据。XML 势头正盛,但冗长且需要解析器和模式;在 JavaScript 中处理 XML 很痛苦,而数据最终恰好要到达 JavaScript 环境。

道格拉斯·克罗克福特将 JSON 定义为一种轻量级格式,基于两种通用结构:名称/值对象和有序列表,并有意将其建立在 JavaScript 编程语言标准(ECMA-262 第 3 版)的子集之上。因此,浏览器可以原生解析它,并且 json.org 上的规范公开发布,任何人都可以实现。

JSON 首先在 Web API 开发者中传播,然后无处不在。2017 年,IETF 发布了 RFC 8259《JavaScript 对象表示法(JSON)数据交换格式》,将其描述为源自 ECMAScript 编程语言标准,并成为 Web 服务的默认数据交换格式。

成为读取你的语言的子集

原生 JavaScript 语法意味着最重要的客户端无需额外机制即可解析。

这两种数据结构直接映射到所有主流语言的对象和数组。

开放、简单的规范消除了许可和学习障碍。

获胜的格式降低了最初集成的成本:通过匹配主流消费方的原生语法,JSON 让浏览器端的第一次解析变得免费,而所有后来的移植都遵循了这一模式。

RFC 8259 于 2017 年将 JSON 正式化为 IETF 标准,几乎所有编程语言都自带解析器。它成为 Web API 的默认数据载荷,并成为一代 NoSQL 文档数据库的模型,而 XML 则退回到文档为中心的领域。

从这里,追溯依据

参考来源

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