JSON 的兴起与崛起( 二 )


最初的 JSON 信息实际上与 JavaScript 解释器发生了冲突 。JavaScript 保留了大量的关键字(ECMAScript 6 版本就有 64 个保留字),Crockford 和 Morningstar 无意中在其 JSON 中使用了一个保留字 。他们使用了 do 作为了键名,但 do 是解释器中的保留字 。因为 JavaScript 使用的保留字太多了,Crockford 做了决定:既然不可避免的要使用到这些保留字,那就要求所有的 JSON 键名都加上引号 。被引起来的键名会被 JavaScript 解释器识别成字符串,其意味着那些保留字也可以放心安全的使用 。这就为什么今天 JSON 键名都要用引号引起来的原因 。
Crockford 和 Morningstar 意识到这技术可以应用于各类应用系统 。想给其命名为 “JSML”,即JavaScript 标记语言(JavaScript Markup Language)的意思,但发现这个缩写已经被一个名为 Java Speech 标记语言的东西所使用了 。因此他们决定采用 “JavaScript Object Notation”,缩写为 JSON 。他们开始向客户推销,但很快发现客户不愿意冒险使用缺乏官方规范的未知技术 。所以 Crockford 决定写一个规范 。
2002 年,Crockford 买下了 JSON.org 域名,放上了 JSON 语法及一个解释器的实例例子 。该网站仍然在运行,现在已经包含有 2013 年正式批准的 JSON ECMA 标准的显著链接 。在该网站建立后,Crockford 并没有过多的推广,但很快发现很多人都在提交各种不同编程语言的 JSON 解析器实现 。JSON 的血统显然与 JavaScript 相关联,但很明显 JSON 非常适合于不同语言之间的数据交换 。
AJAX 导致的误会2005 年,JSON 有了一次大爆发 。那一年,一位名叫 Jesse James Garrett 的网页设计师和开发者在博客文章中创造了 “AJAX” 一词 。他很谨慎地强调:AJAX 并不是新技术,而是 “好几种蓬勃发展的技术以某种强大的新方式汇集在一起 。 5 ” AJAX 是 Garrett 给这种正受到青睐的 Web 应用程序的新开发方法的命名 。他的博客文章接着描述了开发人员如何利用 JavaScript 和 XMLHttpRequest 构建新型应用程序,这些应用程序比传统的网页更具响应性和状态性 。他还以 Gmail 和 Flickr 网站已经使用 AJAX 技术作为了例子 。
当然了,“AJAX” 中的 “X” 代表 XML 。但在随后的问答帖子中,Garrett 指出,JSON 可以完全替代 XML 。他写道:“虽然 XML 是 AJAX 客户端进行数据输入、输出的最完善的技术,但要实现同样的效果,也可以使用像 JavaScript Object Notation(JSON)或任何类似的结构数据方法等技术 。” 6
开发者确实发现在构建 AJAX 应用程序时可以很容易的使用 JSON,许多人更喜欢它而不是 XML 。具有讽刺意味的是,对 AJAX 的兴趣逐渐的导致了 JSON 的普及 。大约在这个时候,JSON 引起了博客圈的注意 。
2006 年,Dave Winer,一位高产的博主,他也是许多基于 XML 的技术(如 RSS 和 XML-RPC)背后的开发工程师,他抱怨到 JSON 毫无疑问的正在重新发明 XML 。尽管人们认为数据交换格式之间的竞争不会导致某一技术的消亡 。其写到:

毫无疑问,我可以编写一个例程来解析 JSON,但来看看他们要重新发明一个东西有多大的意义,出于某种原因 XML 本身对他们来说还不够好(我很想听听原因) 。谁想干这荒谬之事?查找一棵树然后把节点串起来 。可以立马试试 。 7
我很理解 Winer 的挫败感 。事实上并没有太多人喜欢 XML 。甚至 Winer 也说过他不喜欢 XML 。 8 但 XML 已被设计成一个可供任何人使用,并且可以用于几乎能想象到的所有事情 。归根到底,XML 实际上是一门元语言,允许你为特定应用程序自定义该领域特定的语言 。如 Web 信息流技术 RSS 和 SOAP(简单对象访问协议)就是例子 。Winer 认为由于通用交换格式所带来的好处,努力达成共识非常重要 。XML 的灵活性应该能满足任何人的需求,然而 JSON 格式呢,其并没有比 XML 提供更多东西,除了它抛弃了使 XML 更灵活的那些繁琐的东西 。
Crockford 阅读了 Winer 的这篇文章并留下了评论 。为了回应 JSON 重新发明 XML 的指责,Crockford 写到:“重造轮子的好处是可以得到一个更好的轮子 。” 9
JSON 与 XML 对比到 2014 年,JSON 已经由 ECMA 标准和 RFC 官方正式认可 。它有了自己的 MIME 类型 。JSON 已经进入了大联盟时代 。
为什么 JSON 比 XML 更受欢迎?
在 JSON.org 网站上,Crockford 总结了一些 JSON 的优势 。他写到,JSON 的语法极少,其结构可预测,因此 JSON 更容易被人类和机器理解 。 10 其他博主一直关注 XML 的冗长啰嗦及“尖括号负担” 。 11XML 中每个开始标记都必须与结束标记匹配,这意味着 XML 文档包含大量的冗余信息 。在未压缩时,XML 文档的体积比同等信息量 JSON 文档的体积大很多,但是,更重要的,这也使 XML 文档更难以阅读 。


推荐阅读