json和xml比较

来源:互联网 发布:盘锦企业数据 编辑:程序博客网 时间:2024/05/19 12:15

两者的共同优点是都是文本表示的数据格式,可以跨平台、跨系统交换数据

1、可读性

 

两者都具备很好的可读性,但从实际应用出发,个人还是觉得XML文档的可读性无疑会更高,要求你从一大堆的json代码里看出它的结构层次关系还是相对比较困难的;而且现在很多的IDE工具都可以把XML格式化成易读的结构形式,看起来相当舒服,而json则不然。在这一方面我投XML一票。

 

2、是否易于在服务端创建数据

 

XML已经流行了好多年了,故目前流行的编程语言都已经存在大量的XML数据绑定API去进行创建XML,以java语言为例,你既可以用JAXB,又可以用XmlBeans,又或者dom4j、jdom等去把数据写到xml文件中。而另一方面,json这一方面的API则相对是一个全新的领域,尽管如此,json官方网站还是列出了很多令人印象深刻的各种语言的API,java方面比较著名的有json-lib,此外gson也算一个。在这一方面,虽然json相对于XML并不是望尘莫及,但还是略微逊色一筹,尤其是在复杂的应用方面,XML方面的API已经存在多年,相对来说成熟稳定得多了。

 

3、是否易于在客户端处理数据

 

在客户端,要处理XMLHttpRequest请求返回的json格式响应数据是一件轻而易举的事情,只需要使用javascript的eval函数就可以实现把json格式的数据转换成javascript对象,然后通过对象的属性去访问值,这就是json最优雅之处,无数人为之着迷。而XML在这一方面就不是那么的友善了,曾令无数的程序员头痛不已,因为处理XML响应数据,你得通过DOM树,这是非常繁琐且容易出错的工作。这一点,我毫不犹豫地选择json。

 

4、扩展性

 

可扩展性有助于减少生产者与消费者之间的数据耦合。在AJAX应用里,客户端脚本应该合理地兼容不可知的数据扩展。

毫无疑问,XML是可扩展的,但它的扩展是有局限的,因为如果你要适应扩展的话,那么你的客户端代码不得不作出相应的改动

如果你在响应xml中<firstName>结点后增加了<middlename>这一结点的话,那以上的代码就要作相应的改变,否则会出错,也就是说,XML的扩展得伴随着解析代码的变更,这可没有什么魔法可言。而json则简单得多,即使你要增加middleName这一属性,在js客户端依然是通过对象访问属性值即可,而不会引起js上的语法出错之类的错误,导致程序无法执行。

 

5、调试和故障排除

 

这方面需要从服务端和客户端两方面进行考虑,在服务器端,要确保数据是格式良好的和有效的;在客户端,它应该容易调试错误的。

使用XML的话会相对容易地检查数据被发送到客户端是格式良好的和有效的。您还可以使用数据架构(schema)来验证xml的正确性和有效性。使用JSON,这个任务是手动的,并涉及验证响应对象中是否包含正确的属性。

在客户端,要从两者中找到错误都是比较困难的。对于XML,浏览器是完全无法将xml格式化成responseXML;如果对于数据量较少的json数据,还可以通过firebug来发现错误,但对于大数据量的话,那只能靠手工检查了,否则也只能坐以待毙了。

 

 

 

参考资料:  json和xml比较与区别    http://www.studyofnet.com/news/326.html

 

0 0