欢迎来到天天文库
浏览记录
ID:6903662
大小:32.39 KB
页数:7页
时间:2018-01-30
《json与xml的比较研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、JSON与XML的比较研究 (内蒙古财经学院计算机信息管理学院,内蒙古呼和浩特010070) 摘要:文章从解析方法和易用性两个方面对JSON与XML二者进行了比较和分析,指出在AjaxWeb领域,JSON无疑是一个更好的选择。关键词:JSON;XML;Ajax;数据格式;比较分析 中图分类号:TP311.52文献标识码:A文章编号:1007—6921(XX)24—0122—01 在异步应用程序中发送和接收信息时,可以选择以纯文本和XML作为数据格式。例如,Web在进行数据传输时通过GET请求发送的信
2、息就是采用简单的名称/值对的文本格式,并将数据组合成下面这样的形式: firstName=BrettlastName=McLaughlinemail=brettnewInstance.com 此外,XML也已经在Ajax应用程序中广泛使用。上面纯文本的数据在使用XML进行数据传输,通常使用的是以下的数据格式: Brett McLaughlin brettnewInstance.com而JSON是比纯文本类型更适合在Ajaxweb应用程序中使用的数据格式。JSON和XML都是非常成熟的结构化
3、数据表示方法。那么,传输数据时,是该选择XML还是JSON来表示数据呢? 1XML与JSON的基础 1.1XML基础 XML即可扩展标记语言,是一种平台无关的表示数据的方法。简单地说,使用XML创建的数据可以被任何应用程序在任何平台上读取。甚至可以通过手动编码来编辑和创建XML文档。其原因是,XML与HTML一样,都是建立在相同的基于标记技术基础之上。目前,XML的主要用途包括: 1.1.1数据存储。在以数据为中心的信息和以文档的中心的信息这两个方面,XML都有自己的优势。 1.1.2Web服务。Web
4、服务最初用于在HTTP上传递非HTML信息。它们如今已成为通过Ajax获取字段的基础,用于向Web站点、面向服务体系结构和复杂的基于消息的应用程序添加交互性。XML是Web服务领域不可或缺的一部分。Web服务中的所有主流方法,如SOAP、REST甚至XML-RPC,都是基于XM的。 1.1.3播客和其他数据联合。现在,XML最普遍的应用是数据联合领域。数百万的博克用户都在使用RSS提要订阅他们所喜爱的博客上的最新信息。而RSS本身就是基于XML语言的。 1.2JSON基础 JSON(#106avascriptO
5、bjectNotation)是一种轻量级的数据交换格式,易于人阅读和编写。同时,也易于机器解析和生成。它基于#106avascriptProgrammingLanguage,StandardECMA-2623rdEdition-December1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯。这些特性使JSON成为理想的数据交换语言。 JSON建构于2种结构:①“名称/值”对的集合(Acollectionofname/valuepairs)。不同的语言中,它被理解为对象、纪录
6、、结构、字典、哈希表、有键列表,或者关联数组。②值的有序列表。 例如,在引言中的XML文档用JSON的语法可以表示为: {“firstName”:“Brett”,“lastName”:“McLaughlin”,“email”:“brettnewInstance.com”} JSON和XML都是非常成熟的结构化数据表示方法,两者都是基于文本的,且都使用Unicode编码,一样具有可读性。最重要的是,它们都是自描述的语言,这对于数据格式而言是一种很重要的特征。 2JSON和XML比较 2.1解析方案比较
7、 如果只是要表达一个数据结构,把一组数据作为一个整体存放起来或用于传输,那么这就是一个轻量级的应用。无论你有多少数据,都只能算是轻量级的应用。即可以使用JSON,也可以使用XML。 相对于JSON而言,XML可以算是重量级的数据格式,这主要体现在解析上,XML有两种解析方式:DOM和SAX。DOM把一个XML整体解析成一个DOM对象,这一点和JSON把JSON文字解析成对象是一样的。SAX是一个类似消息驱动的解析方法,不需要把整个文档都解析完就可以对解析出的内容进行处理。每当解析出一个对象时,都会通知到程序的处理
8、代码以处理这个对象。程序也可以随时中止解析。这样,一个大的文档就可以逐步地展现出来。如果在网络上传输数据流,那么在传输的过程中,已传输的部分就已经被处理了。这一点,JSON是做不到的,至少目前的JSON程序组件并没有支持这种解析方法,JSON只提供整体解析的方案。 在
此文档下载收益归作者所有