- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JSON与XML数据传输及其效率安全性研究
JSON与XML数据传输及其效率安全性研究
摘 要:在Web开发中,如何选择一种适当的数据传输格式是一个非常重要的问题。目前,主流的数据传输格式主要是XML和 JSON二种。在满足基本需求的情况下,如何选择更高效、安全的一种传输格式就显得尤其重要。
本文将对这二种传输格式的结构进行阐述,并对比其数据传输效率及安全性,让读者在开发过程中选择数据传输格式有一个参考的方向。
关键字:JSON;XML;数据传输;效率;安全性
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
XML是Extensible Markup Language 的缩写,中文名称是可扩展标记语言,它源自标准通用标记语言SGML。XML 是一种格式统一,跨平台的语言,早已成为业界的标准。XML 使用元素和属性来描述数据。在数据传送过程中,XML 始终保留了诸如父/ 子关系这样的数据结构。几个应用程序可以共享和解析同一个XML 文件,不必使用传统的字符串解析或拆解过程。相反,普通文件不对每个数据段做描述(除了在头文件中),也不保留数据关系结构。使用XML 做数据交换可以使应用程序更具有弹性,因为可以用位置(与普通文件一样) 或用元素名(从数据库)来存取XML 数据。
1 JSON和XML的结构
1.1 XML结构
XML 文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。XML 使用简单的具有自我描述性的语法。XML 文档必须包含根元素,该元素是所有其他元素的父元素。XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。所有元素均可拥有文本内容和属性(类似 HTML 中)。所有元素均可拥有子元素。一个典型的XML结构如下:
1
a1
http://
hello
2
a2
http://
world
1.2 JSON结构
JSON 中的每个结构单元均由花括号( { } ) 表示, 每个结构中可以含有多个由逗号( , ) 分隔的成员, 而每个成员均是一个名称/ 值对。每个名称/ 值对包含由冒号( : ) 分隔的两部分, 前者是名称, 后者是值。值不仅可以是普通的数字、字符串, 也可以是逻辑值(Ture或False),一个有序列表, 用方括号( [ ] ) 表示, 其中可以包含以逗号分隔的多个值[ ] 。如上例中的XML结构可以用JSON结构表示为:
{comment s:[
{
id:1,
author:a1,
url:http:// ,
content: hello
},
{
id B2,
author : a2 ,
url:http:// ,
content:world
},
] }
2 传输效率对比
2.1 传输开销对比
数据传输过程中的开销主要来源于属性名称、标签及符号。以一个简单的数据表为例,每一列即为一个属性,如图1 所示。
图1 数据表
XML 分为无空属性XML 和含空属性XML 两类。若用XML 描述第一条数据记录的Tel 属性,可表示为123。对于无空属性XML,即当属性值为空时,不创建元素,数据传输开销表示为(2*N+5)*(1-E),5表示开关标签符号‘( ’,‘/’)共5 个。对于含空属性XML,即属性值为空,但标签及属性名称仍然保留,若第一条数据记录的Tel 属性值为空,则用XML 可表示为 ,此时相当于E = 0,XML 数据传输开销为2*N+5。
对于JSON,也分为无空属性JSON 和含空属性JSON 两类。若用JSON 表示第一条数据记录,可表示为{“No”:“1”,“Sex”:“female”,“Tel”:“123”,“Age”:“10”}。对于每个属性由于属性名称无需成对出现,只需一个表示,另外包含符号‘( ’,‘’,‘:’,‘,’)共6 个,因此,无空属性JSON(当属性值为空时,不创建元素),数据传输开销可表示为(N+6)*(1-E)。对于含空属性JSON(属性值为空,但
原创力文档


文档评论(0)