JSON在电子政务信息系统数据交换中的研究与应用

2012-04-29 00:44姜宇
科技创新导报 2012年15期
关键词:电子政务浏览器代码

姜宇

摘 要:作为当今主流的Web开发技术,AJAX在电子政务信息系统中的广泛应用,对于提高用户体验和政府办公效率有其独特的优势。但其中基于XML进行的数据传输,由于需要DOM解析,导致占用系统资源较多,对于浏览器来说会导致文件解析资源消耗严重的问题。本文提出使用轻量级的JSON格式作为数据负载,摒弃了DOM对XML文件解析的复杂性,可大幅提高数据交换的速率和页面呈现的实时性。

关键词:AJAXJSONXML

中图分类号:TM6 文献标识码:A 文章编号:1674-098X(2012)05(c)-0036-01

1 引言

随着计算机技术和互联网技术的迅猛发展,社会信息化程度的高低已经成为衡量一个国家综合国力水平的重要标志之一。而政府机关为适应网络信息社会的要求,更好地为国民经济和社会发展服务,更需要加强各部门之间信息资源的共享,实现联合办公,提高行政效率,降低行政成本,加速信息的传播,提高信息的使用价值[1]。这样对电子政务信息系统中数据的传输效率提出了新的要求。

本文对XML和JSON进行了分析比较,提出了在AJAX环境中基于JSON的轻量级数据交换模式,对于提高政府部门办公效率有着重要的意义。

2 AJAX简介

AJAX是异步JS和XML的简称,是一种是用客户端脚本并能与Web服务器交互的客户端Web开发技术。其特点在于AJAX是基于客户端的,并能够以异步的方式与服务器交互。

3 从XML到JSON

3.1 XML的局限性

XML——可扩展标记语言。它是一种格

式统一,跨平台的语言。在数据传送过程中,XML始终保留了诸如父/子关系这样的数据结构。几个应用程序可以共享和解析同一个XML文件,不必使用传统的字符串解析或拆解过程[2]。因此在传统WEB应用程序中,使用XML已经有效地成为客户端与服务器之间数据交换的负载格式。随着WEB2.0的发展,AJAX技术逐渐兴起,在其构建的WEB程序中,XML的应用具有很大的局限性。

由于AJAX在浏览器与WEB服务器之间使用异步数据传输HTTP请求以达到使网页从服务器请求少量的信息,在不重载整个页面的情况下与WEB服务器交换数据,因此AJAX程序中的更新和导航序列是在客户端/服务器环境之外完成的。信息被浏览器接收到后,需要整合到HTML页面的整体布局中,这个局部刷新过程不易消耗时间过久,否则会导致用户体验下降。尽管脚本语言和插件支持已使大多数主流浏览器的功能得到了强化,但许多编程任务依然难于开展[3],这是因为将XML作为信息交换的载体,处理操纵文本时通常是使用DOM来实现的。

在客户端接收从服务器传输过来的信息代码时,首先需要对服务器代码进行解析。如果服务器代码是用XML编码的,就必须调用XML解析器,通常使用DOM解析内容。使用DOM时,将把所有的XML文档信息都存于内存中。在信息量不是很大的时候,使用XML作为信息载体并无不妥。但随着信息量的增多,DOM对XML的解析会出现明显的复杂性,主要源于其基于函数的根,这使得对数据树的简单访问和修改都需要进行无数次的方法调用,使用DOM进行解析时,为文档的每个element、attribute和comment都创建一个对象,这样在DOM机制中所运用大量对象的创建和销毁,都导致其解析速度慢,效率低下。此外,DOM解析内存占用量过高,对大信息量文件来说几乎是不可承受的。况且,DOM在各个浏览器中的实现细节不尽相同,编程模式极为复杂,跨浏览器兼容性出现问题的可能性极大[3]。因此,需要一种更为直观的数据封装格式,直接采用面向对象的语法来解析服务器数据。基于JSON的数据交换方式解决了这一问题。

3.2 JSON解决方案

JSON是一种轻量级的数据交换格式,易于阅读和编写,也易于机器解析和生成。它是基于纯文本的数据格式,可以被用来传输简单的诸如String,Number,Boolean等,也可以传输数组或者复杂的Object对象。JSON对象是一系列以逗号分隔的名称/值对(name:value),最外面用一对花括号括起来。由此带来的简洁性是XML无法比拟的,在数据传输时,减少的数据量可以带来性能上的提升,这是JSON的第一个优点。当JS解析和处理JSON时,就突出了其第二个优点。将JSON装载到内存时,只需一个eval()调用。装载后,就可以通过名称直接访问任何字段了。相对于DOM,极大地提高了效率。

下面针对XML和JSON的解析过程进行对比。

一个XML文件:

Chengdu

Sichuan

China

如果要使用JS解析XML就需要使用DOM并编写JS代码将文本变为一个JS对象。代码如下:

if (window.ActiveXObject) {

xmlDoc = new ActiveXObject(''Microsoft.XMLDOM'');

xmlDoc.async = false;

xmlDoc.loadXML(xmlString);

}

这是一个JSON对象:{"city":"Chengdu","province":"Sichuan","coun":"China"}。

装载JSON并调用字段,

var json= {"city":"Chengdu","pro":"Sichuan","coun":"China"};

var result=eval(‘(‘+json+));

alert(result.city);

这样就可以通过JavaScript直接对JSON字符串进行解析并获取对象信息了。

在AJAX应用中,JSON除了大幅提高解析速度以外,在以下方面也发挥了独特的优势地位:

(1)数据类型。

XML本身没有数据类型概念,它通过Schema来定义数据类型。而JSON则提供数据类型的支持,并通过使用对象和数组可以表现结构化数据。

(2)表示数组。

在XML中,需要许多开始标记和结束标记,数组形式通常被表示为一个父元素包含数个相同的子元素。而JSON对数组是原生支持的。

(3)占用空间大小。

从表现形式来看,XML很明显代码臃肿,这主要源于XML的特性,每个元素必须要有开始和结束标签。而JSON更加简洁明了,相同的信息用JSON来表示可以节省更大的空间使用。在互联网应用中,对于相同的信息量在相同带宽环境下,JSON会以更小的体积更快速地发送。

4 结语

在AJAX构建的电子政务信息系统中,使用XML作为数据传送的载体尤其局限性,JSON作为轻量级的数据交换格式,在AJAX应用中优势明显。本文从多角度对二者进行了比较和区别,使用JSON作为数据交换的载体,可以提高系统响应速度,降低等待时间,对于提高系统资源利用率有着很大的贡献价值。

参考文献

[1] 李昕.电子政务信息资源共享的保障研究.江西图书馆学刊,2009.

[2] 胡千里.比较XML与JSON在Web中的应用.信息技术.

[3] 胡晓锋.JSON与XML在网络数据传输中的应用分析.

猜你喜欢
电子政务浏览器代码
论基于云的电子政务服务平台构建
反浏览器指纹追踪
创世代码
创世代码
创世代码
创世代码
环球浏览器
电子政务工程项目绩效评价研究
再见,那些年我们嘲笑过的IE浏览器
中国电子政务的“短板”