这里最值得注意的是,能够表示多个值,每个值进而包含多个值。但是还应该注意,在不同的主条目(programmers、authors 和 musicians)之间,记录中实际的名称 / 值对可以不一样。JSON 是完全动态的,允许在 JSON 结构的中间改变表示数据的方式。在处理 JSON 格式的数据时,没有需要遵守的预定义的约束。所以,在同样的数据结构中,可以改变表示数据的方式,甚至可以以不同方式表示同一事物。
看到这里,大家一定觉得JSON很容易理解吧。为大家提供一个小工具:JSON在线校验格式化工具bejson,可以自己尝试着在这里编写一写简单的JSON。
3.2 如何使用JSON?讲了这么多,大家一定想知道如何来使用JSON,JSON最常用的两种使用方法分别是JavaScrip(JS)和.Net,详细地细则请转至下面的博客:
JSON详解
当然也可以使用其他途径来读取和使用JSON,例如Python等,这个需要我们共同的去学习。
3.3 XML和JSON对比引用网友的一句话,“JSON和XML就像武林界的屠龙刀和倚天剑,那么他们孰强孰弱?” 那么大家一定也很想知道,谁才是武林的霸主?下面我们就一起将他们进行一下PK吧。
(1).可读性方面:JSON和XML的数据可读性基本相同,JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,XML可读性较好些。
(2).可扩展性方面:XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
(3).编码难度方面:XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。
(4).解码难度方面:XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。
(5).流行度方面:XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous Javascript and JSON)了。
(6).解析手段方面:JSON和XML同样拥有丰富的解析手段。
(7).数据体积方面:JSON相对于XML来讲,数据的体积小,传递的速度更快些。
(8).数据交互方面:JSON与JavaScript的交互更加方便,更容易解析处理,更好的数据交互。
(9).数据描述方面:SON对数据的描述性比XML较差。
(10).传输速度方面:JSON的速度要远远快于XML。
为了突出展示一下两者的对比,举一个经典的例子:
用XML表示中国部分省市数据如下:
中国黑龙江哈尔滨大庆广东广州深圳珠海台湾台北高雄新疆乌鲁木齐用JSON表示:
{ "name":"中国", "province":[ { "name":"黑龙江", "cities":{ "city":["哈尔滨","大庆"] } }, { "name":"广东", "cities":{ "city":["广州","深圳","珠海"] } }, { "name":"台湾", "cities":{ "city":["台北","高雄"] } }, { "name":"新疆", "cities":{ "city":["乌鲁木齐"] } } ] }讲了这么多,大家也肯定是凌乱了,不光是你们,就是我也记不住这么多的内容。其实,总结一点就是:XML更像是数据传输界的长老,相对于JSON而言是一种重量型的数据交换格式;而JSON就是后起之秀,是一种轻量型的数据交换格式,两个各有优缺点,孰轻孰重还要看具体的应用环境。
最后,向大家推荐两个相关的博客:
1)JSON资料整理
2)JSON与XML的区别比较