欢迎来到天天文库
浏览记录
ID:25327856
大小:76.00 KB
页数:13页
时间:2018-11-19
《比较xml与json在web中的应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、比较XML与JSON在Web中的应用摘要:随着越来越多的AJAX应用的出现,XML和JSON成为主要的数据交换格式。选择适合的数据交换格式对今后的数据转换和应用程序性能至关重要。通过对比两种格式的语言特性、编程语言支持、运行效率、安全性以及应用范围和学习难易程度,并辅以事例及代码片段,说明JSON比XML更加适合在LJSONAJAX 1概述 1.1XML与JSON简介 XML[1]是ExtensibleMarkupLanguage的缩写,中文名称是可扩展标记语言,它源自标准通用标记语言SGML,XML是从1995年开始有其雏形,并向
2、L1.0)。XML是一种格式统一,跨平台的语言,早已成为业界公认的标准。XML使用元素和属性来描述数据。在数据传送过程中,XML始终保留了诸如父/子关系这样的数据结构。几个应用程序可以共享和解析同一个XML文件,不必使用传统的字符串解析或拆解过程。相反,普通文件不对每个数据段做描述(除了在头文件中),也不保留数据关系结构。使用XML做数据交换可以使应用程序更具有弹性,因为可以用位置(与普通文件一样)或用元素名(从数据库)来存取XML数据。 JSON[2](JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于阅读
3、和编写,同时也易于机器解析和生成。它基于JavaScriptProgrammingLanguage,StandardECMA-2623rdEdition-December1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交换语言。JSON建构于两种结构:名称/值对的集合和值的有序列表。可以用JSON传输一个简单的String,Number,Boolean,也可以传输一个数组,或者一个复杂
4、的Object对象。 1.2XML和JSON范例 假定已经存在一个Employee类,其有4个属性:Name,Title,Phone和Email。下面分别用XML和JSON表示这个类的一个实例。 1.2.1XML Jack 721 jackhotmail. 1.2.2JSON { Name:Jack, Title:developer, Phone:721, Email:jackhotmail. } 2使用编程语言操作XML和JSON 2.1XML与JSON在项目中的使用方法 作为数据交换格式,X
5、ML和JSON具有语言无关性的特点,可以在异构的应用程序之间传递数据。在L和JSON传输数据的过程基本如下所述。 2.1.1浏览器 ①使用标准JavaScript语法创建对象。②把对象转换成JSON或者XML字符串。③通常以Ajax请求方式发送字符串到服务器。 2.1.2服务器 ①解析收到的JSON或XML字符串,并创建和装配一个类实例。②执行相关业务逻辑。③创建新的对象来存储要返回客户端的数据,把这个对象转换成JSON或XML字符串并返回到浏览器。 2.1.3浏览器 ①使用JavaScript解析收到的JSON或XML字符串,并
6、将其转换为预定义的对象。②最后使用该对象完成对页面元素的更新。 由于Javascript在L和JSON进行操作。 2.2使用Javascript解析XML和JSON 如果要使用Javascript解析XML需要使用XMLDOM和编写一定量的代码实现将文本转变为一个Javascript对象。而JSON则可以通过简单的eval()函数将JSON轻松转变为一个Javascript对象。当然,也可以使用json.js实现这种转变。通过下表中列出的实例代码,很明显,无论是使用eval函数还是使用json.js,使用Javascript解析JSON
7、是非常简单的。 2.2.1Javascript解析XML varxmlDoc; //codeforIE if(lDoc=nelDoc.async=false; xmlDoc.loadXML(xmlString); } //codeforMozilla,etc. elseif(document.implementation document.implementation.createDocument){ varobjDOMParser=nelDoc=objDOMParser.parseFromString(xmlString
8、,'text/xml'); } 2.2.2使用eval函数解析JSON varstr={name:Jack, title:developer, phone
此文档下载收益归作者所有