JSON与XML的比较研究
(内蒙古财经学院计算机信息管理学院,内蒙古 呼和浩特 010070)
摘 要:文章从解析方法和易用性两个方面对JSON与XML 二者进行了 比较和分析,指出在Ajax Web领域,JSON无疑是一个更好的选择。关键词:JS ON;XML;Ajax;数据格式;比较分析
中图分类号:TP311.52 文献标识码:A 文章编号: 1007—6921(2009)24—0122—01
在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式。例如,Web 在进行数据传输时通过GET 请求发送的信息就是采用简单的名称/值对的文本格式,并将数 据组合成下面这样的形式:
firstName =Brett&lastName =McLaughlin&email =brett@newInstance.com
此外,XML 也已经在Ajax 应用程序中广泛使用。上面纯文本的数据在使用XML 进行数据传 输,通常使用的是以下的数据格式:
<request>
<firstName>Brett</firstName>
<lastName>McLaughlin</lastName>
<email>brett@newInstance.com</email></request>而JSON 是比纯文本类型更适合在A jax web 应用程序中使用的数据格式。JSON和XML都是非常成熟的结构化数据表示方法。那 么,传输数据时,是该选择XML还是JSON来表示数据呢?
1 XML与JSON的基础
1.1 XML基础
XML 即可扩展标记语言(Extensible Markup Language),是一种平台无关的表示数据的方 法。简单地说,使用 XML 创建的数据可以被任何应用程序在任何平台上读取。甚至可以通 过手动编码来编辑和创建 XML文档。其原因是,XML与HTML一样,都是建立在相同的基于标 记技术基础之上。目前,XML的主要用途包括:
1.1.1 数据存储。在以数据为中心的信息(比如在某个数据库查找到的数据)和以文档 的中心的信息(比如将数据存储在XML中,以便在不同的环境中显示出来)这两个方面,XML 都有自己的优势。
1.1.2 Web服务。Web服务最初用于在HTTP上传递非HTML信息。它们如今已成为通过Ajax 获取字段的基础,用于向Web 站点、面向服务体系结构(Service Oriented Architecture ,SOA)和复杂的基于消息的应用程序添加交互性。XML是Web服务领域不可或缺的一部分。W eb服务中的所有主流方法,如 SOAP、REST甚至XML-RPC,都是基于XM的。
1.1.3 播客和其他数据联合。现在,XML最普遍的应用是数据联合领域。数百万的博克用 户都在使用RSS提要订阅他们所喜爱的博客上的最新信息。而RSS本身就是基于XML语言的。
1.2 JSON基础
JSON(javascript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。 同时,也易于机器解析和生成。它基于javascript Programming Language, Standard ECMA -262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式, 但是也使用了类似于C语言家族的习惯(包括C, C++, C#, JAVA, javascript, Perl, Pytho n等)。这些特性使JSON成为理想的数据交换语言。
JSON 建构于2种结构:①“名称/值”对的集合(A collectionof name/value pairs) 。不 同的语言中, 它被理解为对象、纪录、结构、字典、哈希表、有键列表, 或者关联数组。② 值的有序列表。
例如,在引言中的XML文档用JSON的语法可以表示为:
{ “firstName”: “Brett”, “lastName”:“McLaughlin”, “email”: “brett@newI nstance.com” }
JSON 和XML 都是非常成熟的结构化数据表示方法,两者都是基于文本的, 且都使用Unicode 编码, 一样具有可读性。最重要的是,它们都是自描述的语言,这对于数据格式而言是一 种很重要的特征。
2 JSON和XML比较
2.1 解析方案比较
如果只是要表达一个数据结构,把一组数据作为一个整体存放起来或用于传输,那么这就是 一个轻量级的应用。无论你有多少数据,都只能算是轻量级的应用。即可以使用JSON,也可 以使用XML。
相对于JSON而言,XML可以算是重量级的数据格式,这主要体现在解析上,XML有两种解析方 式:DOM和SAX。DOM把一个XML整体解析成一个DOM对象,这一点和JSON把JSON文字解析成对 象是一样的。SAX是一个类似消息驱动的解析方法,不需要把整个文档都解析完就可以对解 析出的内容进行处理。每当解析出一个对象时,都会通知到程序的处理代码以处理这个对象 。程序也可以随时中止解析。这样,一个大的文档就可以逐步地展现出来。如果在网络上传 输数据流,那么在传输的过程中,已传输的部分就已经被处理了。这一点,JSON是做不到的 ,至少目前的JSON程序组件并没有支持这种解析方法,JSON只提供整体解析的方案。
在普通的 Web应用中,无论是服务器端生成或处理XML,还是客户端用 javascript解析XML ,都常常导致复杂的代码,极低的开发效率。此外,javascript 语言中会不仅会把来自Web 表单的数据放进请求中,而且经常用对象来表示数据。在这些情况下,从javascript对象中 提取数据,然后再将数据放进名称/值对或XML,就有点儿多此一举,这时就适合使用JSON。 JSON为Web应用开发者提供了另一种数据交换格式,允许将javascript对象转换成可以随请 求发送的数据(同步或异步都可以)。但是,JSON只提供了整体解析方案,而这种方法只在 解析较少的数据时才能起到良好效果;而XML提供了对大规模数据的逐步解析方案,这种方 案很适用于对大量数据的处理。
2.2 易用性比较
使用DOM对XML进行解析有些复杂,网上有一些开源的解析程序,但对于初学者,理解起来不 是特别容易。JAVA语言的XML支持包相对而言比较好用,有点编程基础的人容易理解。另外 ,在使用C/C++进行XML解析的时候,可以使用tinyxml一类的库。在Windows中开发程序时, 效率比较高的解析XML的技术是MSXML,虽然直接使用比较困难,但是如果对其进行包装,还 是比较容易使用的。
JSON是一种轻量级的数据交换格式,人们读写更加容易,易于机器的解析和生成,最为重要 的是,不用学习新的API,通过javascript中eval()函数就可以解析JSON,获得经过格式化 的数据。所以,在WEB应用时,如果服务端用JAVA,客户端使用javascript,这时选择用JSO N来传输数据,不仅表达上更为简介,解析也更为方便,并且具有更好的通用性。
3 总结
XML与JSON,一个是规范的标签形式,一个是建议的语法。可 扩展性上相比,两者都有很好的扩展性,没有什么XML能扩展JSON不能的;编码难度上相比 ,JSON编码明显比XML容易的多,即使不借助工具也能写出JSON的代码,但要写好XML又不借 助编码工具就难多了;解码难度上相比,XML的解析需考虑子节点父节点,让人头昏眼花, 而JSON的解析难度几乎为0;流行度上相比,XML虽已经被业界广泛的使用,而JSON在Ajax w eb这个特定的领域,JSON无疑具有更好的发展前景。
[参考文献]
[1] 桑贝斯.李松峰,译.javascript DOM 高级程序设计[M].北京:人民邮电出版 社,2008.
[2] Introducing JSON[EB/OL].http://www.json.org/.
[3] 古凌岚. XML 技术及应用[M].北京:中国水利水电出版社,2008.
版权声明:
1.十号范文网的资料来自互联网以及用户的投稿,用于非商业性学习目的免费阅览。
2.《JSON与XML的比较研究》一文的著作权归原作者所有,仅供学习参考,转载或引用时请保留版权信息。
3.如果本网所转载内容不慎侵犯了您的权益,请联系我们,我们将会及时删除。
本栏目阅读排行
栏目最新
- 1在农民收入调查工作动员培训会上讲话
- 22024年领导干部政治素质自评材料(完整)
- 3公司党委党建工作总结报告【完整版】
- 42024年主题教育党建调研开展情况总结
- 52024年度区妇联关于党建工作述职报告(完整)
- 6关于加强企业人才队伍建设调研与思考(完整文档)
- 72024县党员干部抓基层党建工作述职报告
- 8第二批主题教育研讨发言:时刻“以民为本”,听“实言实语”,办实事好事
- 92024关于党员干部法治信仰情况调研报告(2024年)
- 10局网络安全工作责任制落实自查报告(全文)
- 11XX国企分管领导关于党建设引领企业高质量发展研讨发言(范文推荐)
- 122024年第二批主题教育专题读书班研讨发言提纲(6)【完整版】