Xml可扩展标记语言,被设计用来传输和存储数据,标签没有被预定义,具有自我描述性,是 W3C 的推荐标准。
1)XML的优缺点
<1>.XML的优点
A.格式统一,符合标准;
B.容易与其他系统进行远程交互,数据共享比较方便。
<2>.XML的缺点
A.XML文件庞大,文件格式复杂,传输占带宽;
B.服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护;
C.客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码;
D.服务器端和客户端解析XML花费较多的资源和时间。
2)JSON的优缺点
<1>.JSON的优点:
A.数据格式简单,易于读写,格式都是压缩的,占用带宽小;
B.易于解析,客户端js可以简单的通过eval()进行JSON数据的读取;
C.支持多种语言,便于服务器端的解析;
D.因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护。
<2>.JSON的缺点
A.没有XML那么通用性;
B.JSON格式目前在Web Service中推广还属于初级阶段。
4.XML与JSON数据格式比较
(1).关于轻量级和重量级
XML相对于JSON是重量级的,体现在xml的解析上,XML设计了两种解析方式:DOM和 SAX。
<1>.DOM
DOM是把XML看成一个DOM对象,把XML文件整个读入内存,在这上JSON和XML的原理一样的,但是XML要考虑父节点和子节点,在这一点上JSON的解析难度要小很多,因为JSON构建于两种结构:key/value,键值对的集合;
<2>.SAX
SAX不需要整个读入文档就可以对解析出的内容进行处理,是一种逐步解析的方法。程序也可以随时终止解析。这样,一个大的文档就可以逐步的、一点一点的展现出来,所以SAX适合于大规模的解析。在这一点上JSON目前是做不到得。
所以,JSON和XML的轻/重量级的区别在于:
JSON只提供整体解析方案,而这种方法只在解析较少的数据时才能起到良好的效果;
XML提供了对大规模数据的逐步解析方案,这种方案很适合于对大量数据的处理。
(2).关于数据格式编码及解析难度
<1>.在编码方面。
XML和JSON都有各自的编码工具,但是JSON的编码要比XML简单,即使不借助工具,也可以写出JSON代码,但要写出好的XML代码就有点困难;xml和JSON都是基于文本的并且使用Unicode编码,都具有可读性。
<2>.在解析方面。
xml解析难,无论是服务器端生成或处理XML,还是客户端用js解析XML,都常常导致复杂的代码,开发效率极低。JSON 提供了更好的简单性和灵活性。