JSON与XML的比较研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

<request>
<firstName>Brett</firstName>
<lastName>McLaughlin</lastName>
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的语法可以表示为:
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 总结。

相关文档
最新文档