2024年6月7日发(作者:)

Brett

McLaughlin

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 总结