XML与JSON的比较
发布时间:2020-12-16 09:10:50 所属栏目:百科 来源:网络整理
导读:简介 XML(eXtensible Markup Language,可扩展标记语言),是一种标记语言。XML是从SGML(The Standard Generalized Markup Language,标准通用标记语言)中简化修改出来的。XML被设计用来传输和存储数据。 JSON(JavaScript Object Notation)是一种轻量级的数据
简介XML(eXtensible Markup Language,可扩展标记语言),是一种标记语言。XML是从SGML(The Standard Generalized Markup Language,标准通用标记语言)中简化修改出来的。XML被设计用来传输和存储数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它是基于JavaScript Programming Language,Standard ECMA-262 3rd Edition的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交换语言。 JSON具有以下这些形式: 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。 值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。 XML与JSON的对比两者都是文本表示的数据格式,可以跨平台、跨系统交换数据。 XML适合标记文档,但是 JSON是数据交互的理想格式。两者最大的不同在于,XML是一个完整的标记语言,而JSON不是。XML利用标记语言的特性提供了绝佳的延展性(如XPath),在数据存储,扩展及高级检索方面优势明显,而JSON则由于比XML更加小巧,以及浏览器的内建快速解析支持,使得其更适用于网络数据传输领域。 就可读性而言,两者都具备很好的可读性,但XML文档的可读性更高。 就数据表示和传输性能而言,JSON明显比XML简洁,格式简单,占用带宽少。 示例示例1用XML格式表示中国部分省市数据:<?xml version="1.0" encoding="utf-8" ?> <country> <name>中国</name> <province> <name>黑龙江</name> <citys> <city>哈尔滨</city> <city>大庆</city> </citys> </province> <province> <name>广东</name> <citys> <city>广州</city> <city>深圳</city> <city>珠海</city> </citys> </province> </country>用JSON格式表示中国部分省市数据: var country = { name: "中国",provinces: [ { name: "黑龙江",citys: { city: ["哈尔滨","大庆"]} },{ name: "广东",citys: { city: ["广州","深圳","珠海"]} } ] } 示例2用XML格式表示地址簿:<?xml version='1.0' encoding='UTF-8'?> <card> <fullname>Sean Kelly</fullname> <org>SK Consulting</org> <emailaddrs> <address type='work'>kelly@seankelly.biz</address> <address type='home' pref='1'>kelly@seankelly.tv</address> </emailaddrs> <telephones> <tel type='work' pref='1'>+1 214 555 1212</tel> <tel type='fax'>+1 214 555 1213</tel> <tel type='mobile'>+1 214 555 1214</tel> </telephones> <addresses> <address type='work' format='us'>1234 Main StnSpringfield,TX 78080-1216</address> <address type='home' format='us'>5678 Main StnSpringfield,TX 78080-1316</address> </addresses> <urls> <address type='work'>http://seankelly.biz/</address> <address type='home'>http://seankelly.tv/</address> </urls> </card>用JSON格式表示地址簿: var card = { "fullname": "Sean Kelly","org": "SK Consulting","emailaddrs": [ {"type": "work","value": "kelly@seankelly.biz"},{"type": "home","pref": 1,"value": "kelly@seankelly.tv"} ],"telephones": [ {"type": "work","value": "+1 214 555 1212"},{"type": "fax","value": "+1 214 555 1213"},{"type": "mobile","value": "+1 214 555 1214"} ],"addresses": [ {"type": "work","format": "us","value": "1234 Main StnSpringfield,TX 78080-1216"},"value": "5678 Main StnSpringfield,TX 78080-1316"} ],"urls": [ {"type": "work","value": "http://seankelly.biz/"},"value": "http://seankelly.tv/"} ] } 主要参考博客: http://www.cnblogs.com/SanMaoSpace/p/3139186.html http://www.cnblogs.com/lostyue/archive/2012/04/27/2472956.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |