JSON——IT技术人员都必须要了解的一种数据交换格式 (2)

在这里插入图片描述


这种数据格式既然可以被JavaScript引擎识别,那就解决了XML带来的各种浏览器兼容性问题,所以这种技术完全可以推广出去,于是Crockford 和 Morningstar 想给其命名为 “JSML”,表示JavaScript 标记语言(JavaScript Markup Language)的意思,但发现这个缩写已经被一个名为 Java Speech 标记语言的东西所使用了。所以他们决定采用 “JavaScript Object Notation”,缩写为 JSON,至此JSON正式诞生。

2.JSON发展

2005 年,JSON 有了一次大爆发。那一年,一位名叫 Jesse James Garrett 的网页设计师和开发者在博客文章中创造了 “AJAX” 一词。他很谨慎地强调:AJAX 并不是新技术,而是 “好几种蓬勃发展的技术以某种强大的新方式汇集在一起。” AJAX 是 Garrett 给这种正受到青睐的 Web 应用程序的新开发方法的命名。他的博客文章接着描述了开发人员如何利用 JavaScript 和 XMLHttpRequest 构建新型应用程序,这些应用程序比传统的网页更具响应性和状态性。他还以 Gmail 和 Flickr 网站已经使用 AJAX 技术作为了例子。

当然了,“AJAX” 中的 “X” 代表 XML。但在随后的问答帖子中,Garrett 指出,JSON 可以完全替代 XML。他写道:“虽然 XML 是 AJAX 客户端进行数据输入、输出的最完善的技术,但要实现同样的效果,也可以使用像 JavaScript Object Notation(JSON)或任何类似的结构数据方法等技术。 ”

这时JSON便在国外的博客圈、技术圈慢慢流行起来!

2006 年,Dave Winer,一位高产的博主,他也是许多基于 XML 的技术(如 RSS 和 XML-RPC)背后的开发工程师,他抱怨到 JSON 毫无疑问的正在重新发明 XML。

Crockford 阅读了 Winer 的这篇文章并留下了评论。为了回应 JSON 重新发明 XML 的指责,Crockford 写到:“重造轮子的好处是可以得到一个更好的轮子”。

3.JSON实例

还是以上面A、B公司业务对接为例子,两边的开发人员协商一种通用的数据交换格式,现在有XML与JSON比较流行的两种数据格式,于是开发人员又将用户信息以JSON形式展现出来,然后比较两种数据格式:

{ "person": { "name": "pig", "age": "18", "sex": "man", "hometown": { "province": "江西省", "city": "抚州市", "county": "崇仁县" } } }

比较XML与JSON的数据格式之后,开发人员发现:JSON可阅读性、简易性更好而且相同数据负载JSON字符数更少,所以两个开发人员一致同意使用JSON作为接口数据格式!

而且还有重要的一点,在编写XML时,第一行需要定义XML的版本,而JSON不存在版本问题,格式永远不变!

4.当今JSON地位

当今的JSON 已经占领了全世界。绝大多数的应用程序彼此通过互联网通信时,都在使用 JSON。它已被所有大型企业所采用:十大最受欢迎的 web API 接口列表中(主要由 Google、Facebook 和 Twitter 提供),仅仅只有一个 API 接口是以 XML 的格式开放数据的。

JSON 也在程序编码级别和文件存储上被广泛采用:在 Stack Overflow上,关于JSON的问题越来越多,下图是关于Stack Overflow上不同数据交换格式的问题数和时间的曲线关系图。

在这里插入图片描述


从上图我们可以看出在Stack Overflow上越来越多JSON的问题,从这里也可以反映出JSON越来越流行!

更详细的关于创造JSON的故事可阅读:https://www.jianshu.com/p/62a856367d2d

3、总结

由于篇幅原因我们今天只学习了JSON的诞生和起源相关知识,知道了JSON的诞生是因为XML无法满足Ajax对浏览器兼容性问题,所以就有人想创造一种浏览器通用组件:JavaScript引擎 能识别的数据格式,这样就可以解决浏览器不兼容问题,所以就从Js数据格式中提取了一个子集,取名为JSON!

我们还知道了为什么JSON键为什么需要用双引号引起来,是因为JS中存在许多的关键字和保留关键字,为了避免与JS关键字冲突,所以Crockford就要求在所有的键名上加上双引号,这样JS引擎会将其识别为字符串,就避免与JS中关键字冲突!

下期我们会详细介绍JSON数据结构、JSON序列化、JSON在Python中的使用等知识。

了解技术诞生与发展背后的故事同样重要,因为这些可以作为你吹逼的资本!

参考资料:
百度百科:XML
Daniel Rubio:JSON 简介
https://www.jianshu.com/p/62a856367d2d

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfjdf.html