目前,在web开发领域,主要的数据交换格式有XMLJSON,对于XML相信大家都很熟悉。XML不仅能处理数字和文字等经典的数据,还可以管理文件,格式化,图像,音频,视频,以及更多。 JSON是一种轻量级的数据交换格式易于人阅读和编写同时也易于机器解析和生成。如今,我们经常会面临创建数据文件时,JSONXML之间的选择。这里有一些差异,帮助在合适的时候选择合适的格式:


1.简单性,开放性,互操作性

JSONXML之间的简单,开放性和互操作性方面没有太大的区别。


2.易读性

       XMLJSON文件被认为是人可读。至少,他们是程序员可以理解的格式。然而,JSON文件更为严格,因此稍微更具可读性。这是因为JSON支持的数据格式的数量远小于XML


3.编码及解析难度

      在编码上,虽然XMLJSON都有各自的编码工具,但是JSON的编码要比XML简单,即使不借助工具,也可以写出JSON代码,但要写出好的XML代码就有点困难;与XML一样,JSON也是基于文本的,且它们都使用Unicode编码,且其与数据交换格式XML一样具有可读性。

     主观上来看,JSON更为清晰且冗余更少些。JSON网站提供了对JSON语法的严格描述,只是描述较简短。从总体来看,XML比较适合于标记文档,而JSON却更适于进行数据交换处理。

      在解析上,在普通的web应用领域,开发者经常为XML的解析伤脑筋,无论是服务器端生成或处理XML,还是客户端用 JavaScript 解析XML,都常常导致复杂的代码,极低的开发效率。


4.轻量级和重量级

 轻量级和重量级是相对来说的,XML目前设计了两种解析方式:DOMSAX

        DOM是把一个数据交换格式XML看成一个DOM对象,需要把XML文件整个读入内存,这一点上JSONXML的原理是一样的,但是XML要考虑父节点和子节点,这一点上JSON的解析难度要小很多,因为JSON构建于两种结构:key/value,键值对的集合;值的有序集合,可理解为数组;

       SAX不需要整个读入文档就可以对解析出的内容进行处理,是一种逐步解析的方法。程序也可以随时终止解析。这样,一个大的文档就可以逐步的、一点一点的展现出来,所以SAX适合于大规模的解析。这一点,JSON目前是做不到得。

      所以,JSONXML的轻/重量级的区别在于:JSON只提供整体解析方案,而这种方法只在解析较少的数据时才能起到良好的效果;而XML提供了对大规模数据的逐步解析方案,这种方案很适合于对大量数据的处理。

 

    综上,JSONXML各有特色与适用特点:

对比项目

XML

JSON

可读性

标签格式

建议语法

编码难度

较复杂,适合于标记文档

较简单,适合于数据交换处理

解码难度

较复杂,适合重量级

较简单,适合轻量级

安全性

较好

较差