JSON 数据格式详解( 三 )


= .();
这就是 JSON 与本系列讨论的其他数据格式之间最大的差异 。如果使用 JSON,只需调用一个简单的函数,就可以获得经过格式化的数据,可以直接使用了 。对于其他数据格式,需要在原始数据和格式化数据之间进行转换 。即使使用Model 这样的 API(提供了将自己的数据结构转换为文本的函数),也需要学习这个 API 并使用 API 的对象,而不是使用原生的对象和语法 。
最终结论是,如果要处理大量对象,那么 JSON 几乎肯定是一个好选择,这样就可以轻松地将数据转换为可以在请求中发送给服务器端程序的格式 。
概念比较
JSON和XML的比较
◆可读性
JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,很难分出胜负 。
◆可扩展性
XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,而JSON却不能 。不过JSON在主场作战,可以存储复合对象,有着xml不可比拟的优势 。
◆编码难度
XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有提供的工具 。无工具的情况下,相信熟练的开发人员一样能很快的写出想要的xml文档和JSON字符串,不过,xml文档要多很多结构上的字符 。
◆解码难度
XML的解析方式有两种:
一是通过文档模型解析,也就是通过父标签索引出一组标记 。例如:.(""),但是这样是要在预先知道文档结构的情况下使用,无法进行通用的封装 。
另外一种方法是遍历节点( 以及 ) 。这个可以通过递归来实现,不过解析出来的数据仍旧是形式各异,往往也不能满足预先的要求 。
凡是这样可扩展的结构数据解析起来一定都很困难 。
JSON也同样如此 。如果预先知道JSON结构的情况下,使用JSON进行数据传递简直是太美妙了,可以写出很实用美观可读性强的代码 。如果你是纯粹的前台开发人员,一定会非常喜欢JSON 。但是如果你是一个应用开发人员,就不是那么喜欢了,毕竟xml才是真正的结构化标记语言,用于进行数据传递 。
而如果不知道JSON的结构而去解析JSON的话,那简直是噩梦 。费时费力不说,代码也会变得冗余拖沓,得到的结果也不尽人意 。但是这样也不影响众多前台开发人员选择JSON 。因为json.js中的()就可以看到JSON的字符串结构 。当然不是使用这个字符串,这样仍旧是噩梦 。常用JSON的人看到这个字符串之后,就对JSON的结构很明了了,就更容易的操作JSON 。
以上是在中仅对于数据传递的xml与JSON的解析 。在地盘内,JSON毕竟是主场作战,其优势当然要远远优越于xml 。如果JSON中存储复合对象,而且不知道其结构的话,我相信很多程序员也一样是哭着解析JSON的 。
◆实例比较
XML和JSON都使用结构化方法来标记数据,下面来做一个简单的比较 。
用XML表示中国部分省市数据如下:
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
中国
黑龙江
哈尔滨
大庆
广东
广州
深圳
珠海
用JSON表示如下:
{name:"中国", :[ { name:"黑龙江", :{ city:["哈尔滨","大庆"] },
{name:"广东", :{ city:["广州","深圳","珠海"] }
编码的可读性,xml有明显的优势,毕竟人类的语言更贴近这样的说明结构 。json读起来更像一个数据块,读起来就比较费解了 。不过,我们读起来费解的语言,恰恰是适合机器阅读,所以通过json的索引.[0].name就能够读取“黑龙江”这个值 。