就来讲讲JSON吧

java小课堂

分享人:宋哲明

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

E.F.Codd在1970年首次提出了数据库系统的关系模型,从此开创了数据库关系方法和关系数据理论的研究,为数据库技术奠定了理论基础,数据库技术也开始蓬勃发展。而随着几大数据库厂商陆续发布的商业数据库管理系统几乎都支持关系数据模型,数据库技术逐渐统一到以关系型数据库为主导。 2001年后,互联网技术迅速发展,数据量迅速膨胀并并大,人类逐步进入大数据时代。大数据给传统的数据管理方式带来了严峻的挑战,关系型数据库在容量,性能,成本等多方面都难以满足大数据管理的需求。NoSQL数据库通过折中关系型数据库严格的数据一致性管理,在可扩展性、模型灵活性、经济性和访问性等方面获得了很大的优势,可以更好地适应大数据应用的需求,成为大数据时代最重要的数据管理技术。

2.知识剖析

什么是JSON?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,而且它是基于JavaScript的。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript等)。这些特性使JSON成为理想的数据交换格式。

3.常见问题

我们如何写JSON

JSON有两种结构: “名/值”对的集合。在不同的语言中,它被理解为对象,结构,关联数组等 值的有序列表。早大部分语言中,它被理解为数组 这些都是常见的数据结构。事实上大部分现代计算机语言都是以某种形式支持它们,这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能

4.解决方案

下面就是JSON表示名称/值对

{"firstName":"Grasse"}

多个名称/值对串在一起

{"fisrt":"Grasse","lastName":"Jordan","email":"88888888@gmail.com"}

5.编码实战

6.扩展思考

在开始了解JSON的时候,我问了很多Java的师兄,对于的JSON的使用不多或者说是没有。然后又问了很多Web大佬,大佬们都说用到过,但是也只是很浅显的用到,在网上学习的时候,发现如果要深入学习JSON的话,可能一时半会不可能完成,而且在我们现在的阶段 也用不到,所以我决定我们从JSON的宽度来做扩展思考。

让我们比较现在比较流行的两种数据传输格式,XML与JSON

我们直接从代码入手来看看他们的区别

Json代码

{"employees:":[

{"fisrt":"Grasse","lastName":"Jordan","email":"88888888@gmail.com"}

{"fisrt":"Nicholas","lastName":"ZhaoSi","email":"66666666@gmail.com"}

{"fisrt":"paul","lastName":"Pogba","email":"8888915@gmail.com"}

]}

XML代码

Grasse

Jordan

8888888@gmail.com

Nicholas

ZhaoSi

6666666@gmail.com

Paul

Pogba

8888915@gmail.com

JSON vs. XML

1.可读性

JSON和XML的可读性可谓不相上下,XML略占上风

2.可扩展性

XML天生有很好的扩展性。JSON当然也有。没有什么是XML能扩展,而JSON不能的

3.编码难度

XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了

4.解码难度

XML的解析得考虑子节点父节点关系,让人头昏眼花,而JSON的解析难度几乎为零

5.流行度

曾经XML被广泛应用,但自从JSON出来以后,但在Ajax领域,JSON凭借自身的优势慢慢在吞噬XML的市场

7.参考文献

https://zhuanlan.zhihu.com/p/23211647

8.更多讨论

鸣谢

感谢观看,如有出错,恳请指正

BY : 宋哲明