内容: 记录json与xml的区别和联系

JSON与XML的各方面比较:

(1)可读性方面:当结构简单时,都挺好读;当复杂时,也都非常难读

(2)可扩展性方面:都具有良好的扩展性;

(3)编码难度方面:相对而言,JSON的编码比较容易,就是字典形式的设计;

(4)解码难度:JSON的解码难度较低,因为是字典形式,为键值对的集合;
             XML是树形的,需要考虑子节点和父节点;

(5)数据体积方面:JSON相对于XML来讲,数据体积小,传递的速度比较快;

(6)数据交互方面:JSON与javascript的交互更加方便,更容易解析处理,更好的数据交互;

(7)数据描述方面:XML对数据描述性比较好;

(8)传输速度方面:JSON的速度快于XML。

(9)类型方面:JSON和XML都是数据交换格式,JSON轻量级的数据交换格式、XML是标记电子文件
             使其具有结构性的标记语言。

(10)用于调用时性能方面:XML它不适用于RPC远程调用数据交换格式,因为XML文件格式复杂,
     比较占宽带,不易于维护,服务器端与客户端解析xml话费较多的资源和时间.JSON它适用
     于RPC远程调用数据交换格式,因为JSON文件格式压缩,占宽带小,易于维护。

JSON与XML的实现:

(1)JSON底层原理:遍历字符串中的字符,最终根据格式规定的特殊字符,比如{}、[]、:
    等进行区分,{}号表示字典,[]号表示数组,:号是字典的键和值的分水岭,最终仍是将
    JSON转化为字典,只不过字典中的值可能是“字典、数组或者字符串而已”。

(2)XML底层原理:XML解析常用的解析方法有两种:DOM解析和SAX解析;DOM采用的是树形结
    构的方式访问XML文档,而SAX采用的是事件模型;DOM解析把XML文档转化为一个包含其内
    容的树,并可以对树进行遍历,使用DOM解析器的时候需要处理整个XML文档,所以对内存和
    性能的要求比较高;SAX在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的
    时候,他可以激活一个回调方法,告诉该方法指定的标签已经找到,SAX对内存的要求通常会
    比较低,因为他让开发人员自己来决定所要处理的tag,特别是当开发人员只需要处理文档中
    所包含部分数据时,SAX这种扩展能力得到了更好的体现。