JSON与XML的区分相比较及案例应用,JSON与XML优缺点

作者: 关于计算机  发布:2019-09-05

1. 概念介绍

1.概念介绍

1.1 XML定义

(1).XML定义

推而广之标志语言 (Extensible 马克up Language, XML) ,用于标识电子文件使其兼具结构性的暗记语言,能够用来标识数据、定义数据类型,是一种允许客户对友好的号子语言举办定义的源语言。 XML使用DTD(document type definition)文档类型定义来公司数据;格式统一,跨平台和语言,早已成为产业界公众认可的标准。
XML是规范通用标志语言 (S林大霉素L) 的子集,特别适合 Web 传输。XML 提供联合的法子来说述和沟通独立于应用程序或代理商的结构化数据。

恢宏标识语言 (Extensible 马克up Language, XML) ,用于标识电子公文使其颇具结构性的暗记语言,能够用来标识数据、定义数据类型,是一种允许顾客对友好的号子语言举行定义的源语言。 XML使用DTD(document type definition)文书档案类型定义来公司数据;格式统一,跨平台和言语,早就形成产业界公众承认的标准。

1.2 JSON定义

XML是正经通用标识语言 (S培洛霉素L) 的子集,特别适合 Web 传输。XML 提供统一的点子来说述和置换独立于应用程序或承包商的结构化数据。

JSON(JavaScript Object Notation)一种轻量级的数据交流格式,具有独具特殊的优越条件的可读和造福快捷编写的特色。可在区别平台之间开展数据沟通。JSON选拔包容性非常高的、完全部独用立于言语文本格式,同时也享有类似于C语言的习贯(包蕴C, C++, C#, Java, JavaScript, Perl, Python等)类别的表现。这一个特征使JSON成为非凡的数据调换语言。
JSON基于JavaScript Programming Language , Standard ECMA-262 3rd Edition

(2).JSON定义

  • December 1996 的叁个子集。

JSON(JavaScript Object Notation)一种轻量级的数据交流格式,具备特出的可读和便利神速编写的特色。可在分歧平台之间开展数据沟通。JSON选拔包容性极高的、完全部独用立于言语文本格式,同有的时候间也会有所类似于C语言的习于旧贯(包罗C, C++, C#, Java, JavaScript, Perl, Python等)类别的一坐一起。那几个特色使JSON成为卓越的数据调换语言。

2. XML和JSON优缺点

JSON基于JavaScript Programming Language , Standard ECMA-262 3rd Edition

2.1 XML的利害

  • December 1998 的二个子集。

XML的优点
  A.格式统一,符合标准;
  B.轻松与任何系统进行长途交互,数据共享比较有利。

2.XML和JSON优缺点

XML的缺点
  A.XML文件庞大,文件格式复杂,传输占带宽;
  B.服务器端和客户端都亟待开销多量代码来深入分析XML,导致服务器端和客商端代码变得老大复杂且不易维护;
  C.顾客端区别浏览器之间分析XML的方式不均等,要求重新编写非常多代码;
  D.服务器端和客商端分析XML费用相当多的能源和时间。

(1).XML的得失

2.2 JSON的利弊

<1>.XML的优点

JSON的优点:

  A.格式统一,符合规范;

  A.数据格式比较轻巧,易于读写,格式都是削减的,占用带宽小;
  B.易于剖判,客户端JavaScript能够大致的通过eval()进行JSON数据的读取;
  C.帮助二种语言,包涵ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等劳务器端语言,便于服务器端的分析;
  D.在PHP世界,已经有PHP-JSON和JSON-PHP现身了,偏于PHP系列化后的程序直接调用,PHP服务器端的靶子、数组等能一贯生成JSON格式,便于顾客端的看望提取;
  E.因为JSON格式能一向为劳动器端代码应用,大大简化了劳务器端和顾客端的代码开拓量,且做到职责不改变,並且易于维护。

  B.轻巧与别的系统进行长距离交互,数据分享相比便于。

JSON的缺点

<2>.XML的缺点

  A.未有XML格式这么推广的深入人心和喜用遍布,没有XML那么通用性;
  B.JSON格式近期在Web Service中放大还属于初级阶段。

  A.XML文件庞大,文件格式复杂,传输占带宽;

3. XML和JSON的利害相比

  B.服务器端和顾客端都必要费用大量代码来深入分析XML,导致服务器端和顾客端代码变得分外复杂且不易维护;

可读性方面。

  C.客户端分歧浏览器之间分析XML的不二诀窍不一样样,须要再行编写相当多代码;

JSON和XML的数目可读性基本一样,JSON和XML的可读性可谓平分秋色,一边是建议的语法,一边是正规的价签方式,XML可读性较好些。

  D.服务器端和顾客端分析XML成本比较多的能源和岁月。

可扩大性方面。

(2).JSON的利害

XML天生有很好的扩张性,JSON当然也许有,未有啥是XML能增添,JSON不能够的。

<1>.JSON的优点:

编码难度方面。

  A.数据格式比较轻易,易于读写,格式都以削减的,占用带宽小;

XML有加上的编码工具,比方Dom4j、JDom等,JSON也会有json.org提供的工具,可是JSON的编码显然比XML轻便许多,就算不借助理工科程师具也能写出JSON的代码,但是要写好XML就不太轻便了。

  B.易于分析,客商端JavaScript能够省略的通过eval()进行JSON数据的读取;

解码难度方面。

  C.帮忙种种语言,包罗ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等劳动器端语言,便于服务器端的解析;

XML的深入分析得思考子节点父节点,令人头昏目眩,而JSON的分析难度大概为0。那一点XML输的真是没话说。

  D.在PHP世界,已经有PHP-JSON和JSON-PHP出现了,偏于PHP体系化后的主次直接调用,PHP服务器端的对象、数组等能一向生成JSON格式,便于顾客端的拜候提取;

流行度方面。

  E.因为JSON格式能一向为服务器端代码应用,大大简化了劳务器端和客商端的代码开辟量,且形成任务不改变,並且易于维护。

XML已经被产业界分布的采纳,而JSON才刚刚开首,不过在Ajax那么些一定的圈子,未来的前行确定是XML让位于JSON。到时Ajax应该成为Ajaj(Asynchronous Javascript and JSON)了。

<2>.JSON的缺点

深入分析手腕方面。

  A.未有XML格式这么推广的有目共睹和喜用广泛,未有XML那么通用性;

JSON和XML一样享有丰硕的深入分析花招。

  B.JSON格式近来在Web Service中加大还属于初级阶段。

数码体量方面。

3.XML和JSON的优短处比较

JSON相对于XML来说,数据的体积小,传递的速度越来越快些。

(1).可读性方面。

数据交互方面。

JSON和XML的数量可读性基本一样,JSON和XML的可读性可谓春兰秋菊,一边是提出的语法,一边是标准的价签格局,XML可读性较好些。

JSON与JavaScript的并行特别有助于,更便于分析管理,更加好的数目交互。

(2).可扩展性方面。

多少描述方面。

XML天生有很好的扩充性,JSON当然也可能有,没有怎么是XML能增添,JSON无法的。

JSON对数码的描述性比XML比较糟糕。

(3).编码难度方面。

传输速度方面。

XML有增进的编码工具,比方Dom4j、JDom等,JSON也可能有json.org提供的工具,但是JSON的编码明显比XML轻便多数,即便不依赖工具也能写出JSON的代码,可是要写好XML就不太轻便了。

JSON的快慢要远远快于XML。

(4).解码难度方面。

4.XML与JSON数据格式相比较

XML的分析得思考子节点父节点,令人头昏目眩,而JSON的解析难度差不离为0。那一点XML输的即是没话说。

4.1 关于轻量级和千粒重级

(5).流行度方面。

轻量级和重量级是相对来讲的,那么XML绝对于JSON的份量级浮现在哪呢?应该呈今后条分缕析上,XML近来规划了二种解析方法:DOM和 SAX。

XML已经被产业界广泛的利用,而JSON才刚刚早先,可是在Ajax这一个一定的天地,以往的升高料定是XML让位于JSON。到时Ajax应该改成Ajaj(Asynchronous Javascript and JSON)了。

DOM

(6).分析手腕方面。

DOM是把一个数据调换格式XML看成四个DOM对象,要求把XML文件整个读入内部存储器,这或多或少上JSON和XML的原理是一模二样的,可是XML要怀恋父节点和子节点,那一点上JSON的剖析难度要小比很多,因为JSON营造于三种结构:key/value,键值对的聚焦;值的不改变聚集,可领略为数组;

JSON和XML同样享有丰盛的分析手腕。

SAX

(7).数据体积方面。

SAX无需总体读入文书档案就能够对深入分析出的剧情开展管理,是一种稳步深入分析的艺术。程序也足以每三十五日终止深入分析。那样,一个大的文书档案就能够稳步的、一点一点的显现出来,所以SAX适合于常见的剖判。那点,JSON这两天是做不到得。
进而,JSON和XML的轻/重量级的界别在于:
JSON只提供整机分析方案,而这种方法只在分析非常少的多少时本领起到出色的坚守;
XML提供了对广大数据的日趋深入分析方案,这种方案很符合于对多量数码的管理。

JSON相对于XML来说,数据的体积小,传递的速度越来越快些。

4.2 关于数据格式编码及深入分析难度

(8).数据交互方面。

在编码方面。

JSON与JavaScript的交互特别有益,更便于分析管理,越来越好的多少交互。

即便XML和JSON都有些的编码工具,然则JSON的编码要比XML轻易,就算不借助理工科程师具,也得以写出JSON代码,但要写出好的XML代码就有一点困难;与XML相同,JSON也是依照文本的,且它们都施用Unicode编码,且其与数据交流格式XML一样享有

(9).数据描述方面。

可读性。

JSON对数码的描述性比XML很糟糕。

无缘无故上来看,JSON更为显明且冗余更一些些。JSON网址提供了对JSON语法的严俊描述,只是描述较轻便。从总体来看,XML相比较相符于标志文书档案,而JSON却更适应举行数据沟通管理。

(10).传输速度方面。

在解析方面。

JSON的快慢要远远快于XML。

在平凡的web应用领域,开采者常常为XML的解析伤脑筋,无论是服务器端生成或处理XML,照旧客商端用 JavaScript 剖析XML,都常常导致复杂的代码,相当低的开辟功用。
实则,对于超越51%Web应用来讲,他们一贯无需复杂的XML来传输数据,XML宣称的增添性在此就非常少具有优势,多数Ajax应用以至直接回到HTML片段来营造动态Web页面。和重回XML并分析它相比较,重返HTML片段大大减弱了系统的错综复杂,但同一时候缺乏了一定的八面驶风。同XML或 HTML片段比较,数据交流格式JSON 提供了越来越好的轻松性和灵活性。在Web Serivice应用中,至少就当下的话XML仍有不可动摇的身份。

4.XML与JSON数据格式比较

实例相比较

(1).关于轻量级和重量级

XML和JSON都使用结构化方法来标志数据,上边来做多个轻便易行的可比。
用XML表示中华夏族民共和国有的省市数据如下:

轻量级和重量级是相对来讲的,那么XML相对于JSON的分量级浮未来哪吧?应该显示在深入分析上,XML最近规划了三种解析方法:DOM和 SAX。

<?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>
 <province>
  <name>台湾</name>
  <citys>
    <city>台北</city>
    <city>高雄</city>
  </citys> 
 </province>
 <province>
  <name>新疆</name>
  <citys>
   <city>乌鲁木齐</city>
  </citys>
 </province>
</country>

<1>.DOM

用JSON表示中华夏族民共和国局地省市数据如下:

DOM是把贰个数据交流格式XML看成二个DOM对象,需求把XML文件整个读入内存,那或多或少上JSON和XML的原理是一致的,然则XML要思索父节点和子节点,那或多或少上JSON的深入分析难度要小比很多,因为JSON创设于二种结构:key/value,键值对的会见;值的有序集中,可驾驭为数组;

 var country =
    {
      name: "中国",
      provinces: [
      { name: "黑龙江", citys: { city: ["哈尔滨", "大庆"]} },
      { name: "广东", citys: { city: ["广州", "深圳", "珠海"]} },
      { name: "台湾", citys: { city: ["台北", "高雄"]} },
      { name: "新疆", citys: { city: ["乌鲁木齐"]} }
      ]
    }

<2>.SAX

编码的可读性来讲,XML有引人注目标优势,毕竟人类的语言更邻近那样的证实结构。JSON读起来更像二个数据块,读起来就相比费解了。但是,我们读起来费解的言语,恰恰是切合机器阅读,所以经过JSON的索引country.provinces[0].name就能够读取“尼罗河”这几个值。

SAX无需全方位读入文书档案就足以对剖判出的内容进行拍卖,是一种稳步深入分析的点子。程序也得以每日终止深入分析。那样,贰个大的文档就足以渐渐的、一点一点的变现出来,所以SAX适合于常见的解析。那或多或少,JSON近期是做不到得。

编码的手写难度来讲,XML仍然舒服一些,好读当然就好写。可是写出来的字符JSON就精通少相当多。去掉空白制表以及换行的话,JSON就是密密麻麻的有用数据,而XML却隐含众多再一次的符号字符。

为此,JSON和XML的轻/重量级的分歧在于:

如上所述就是本文的全体内容了,希望大家能够欣赏。

JSON只提供整机深入分析方案,而这种艺术只在剖判相当少的多寡时技巧起到完美的功能;

你或然感兴趣的篇章:

  • JQuery的ajax获取数据后的管理计算(html,xml,json)
  • C# XML与Json之间交互调换实例详解
  • JQuery深入分析HTML、JSON和XML实例详解
  • xml转json的js代码
  • 比较剖判json及XML
  • JavaScript将XML转成JSON的方法
  • json跟xml的比较深入分析
  • 怎样在JS中落成相互之间调换XML和JSON
  • JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
  • js实现的xml对象转json功用示例
  • JSON与XML的界别相比及案例应用
  • JavaScript兑现的XML与JSON互转功用详解

XML提供了对常见数据的日趋深入分析方案,这种方案很适合于对大量数量的拍卖。

(2).关于数据格式编码及剖判难度

<1>.在编码方面。

固然XML和JSON都有分其余编码工具,然则JSON的编码要比XML简单,即便不借助理工科程师具,也得以写出JSON代码,但要写出好的XML代码就有一点困难;与XML同样,JSON也是依照文本的,且它们都选拔Unicode编码,且其与数据交流格式XML同样具备可读性。

无理上来看,JSON更为显明且冗余更加小量。JSON网址提供了对JSON语法的从严描述,只是描述较简单。从总体来看,XML比较适合于标识文书档案,而JSON却更适于实行数据沟通管理。

<2>.在条分缕析方面。

在一般的web应用领域,开垦者平时为XML的深入分析伤脑筋,无论是服务器端生成或管理XML,依旧顾客端用 JavaScript 深入分析XML,都平常导致复杂的代码,十分的低的费用功能。
实际,对于大多Web应用来讲,他们一直无需复杂的XML来传输数据,XML宣称的扩大性在此就很少具备优势,多数Ajax应用以至平昔回到HTML片段来营造动态Web页面。和重临XML并深入分析它比较,再次来到HTML片段大大减少了系统的复杂性,但还要贫乏了一定的狡猾。同XML或 HTML片段相比较,数据交流格式JSON 提供了越来越好的轻巧性和灵活性。在Web 塞里vice应用中,至少就前段时间以来XML仍有不可动摇的地方。

(3).实例相比

XML和JSON都采取结构化方法来标识数据,上边来做一个粗略的可比。

<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>
<province>
<name>台湾</name>
<citys>
 <city>台北</city>
 <city>高雄</city>
</citys> 
</province>
<province>
<name>新疆</name>
<citys>
<city>乌鲁木齐</city>
</citys>
</province>
</country>

<2>.用JSON表示中国有个别省市数据如下

var country =
{
name: "中国",
provinces: [
{ name: "黑龙江", citys: { city: ["哈尔滨", "大庆"]} },
{ name: "广东", citys: { city: ["广州", "深圳", "珠海"]} },
{ name: "台湾", citys: { city: ["台北", "高雄"]} },
{ name: "新疆", citys: { city: ["乌鲁木齐"]} }
]
}

编码的可读性来讲,XML有分明的优势,毕竟人类的言语更邻近那样的验证结构。JSON读起来更像三个数据块,读起来就比较费解了。可是,大家读起来费解的语言,恰恰是吻合机器阅读,所以经过JSON的索引country.provinces[0].name就能够读取“多瑙河”这些值。

编码的手写难度来讲,XML照旧舒服一些,好读当然就好写。但是写出来的字符JSON就鲜明少相当多。去掉空白制表以及换行的话,JSON正是三种的有用数码,而XML却含有众多双重的标记字符。

案例运用:省的三级联合浮动

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="js/封装Ajax.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<select name="provence" id="provence" onchange="chooseP(this.value)">
<option>湖北省</option>
</select>
<select name="city" id="city" onchange="chooseC(this.value)">
<option>武汉市</option>
</select>
<select name="area" id="area">
<option>江城区</option>
</select>
</body>
<script> 
objAJAX.getAjax("get", "xml/Provinces.xml", "", callBackOk, callBackFail, "");
function callBackOk(data) {
var provences = data.getElementsByTagName("Province");
/*<Province ID="1" ProvinceName="北京市">北京市</Province> */
for(var i = 0; i < provences.length; i++) {
var Potion = document.createElement("option"); //<option><option/>
Potion.value = provences[i].getAttribute("ID"); //把id传给value
Potion.innerHTML = provences[i].innerHTML;
document.getElementById("provence").appendChild(Potion);
}
}
function callBackFail() {
alert("服务器出错啦")
}
//市级联动
function chooseP(id) {
objAJAX.getAjax("get", "xml/Cities.xml", "", callBackOkP, callBackFailP, "");
function callBackOkP(data) {
document.getElementById("city").innerHTML = "";
//alert( typeof data)
var citys = data.getElementsByTagName("City");
//alert(citys.length)
/*<City ID="1" CityName="北京市" PID="1" ZipCode="100000">北京市</City>*/
for(var i = 0; i < citys.length; i++){
var Coption = document.createElement("option"); //<option><option/>
Coption.value = citys[i].getAttribute("ID"); 
var PID = citys[i].getAttribute("PID");
if(id == PID) {
Coption.innerHTML = citys[i].innerHTML;
var dd=Coption.value;
document.getElementById("city").appendChild(Coption);
}
}
alert(Cvalue); 
chooseC(Cvalue);
}
function callBackFailP() {
alert("服务器出错啦")
} 
}
//县级联动
function chooseC(id) {
objAJAX.getAjax("get", "xml/Districts.xml", "", callBackOkP, callBackFailP, "");
function callBackOkP(data) {
document.getElementById("area").innerHTML = "";
//alert( typeof data)
var districts = data.getElementsByTagName("District");
//alert(citys.length)
/* <District ID="1" DistrictName="东城区" CID="1">东城区</District>*/
for(var i = 0; i < districts.length; i++) {
var Xoption = document.createElement("option"); //<option><option/>
Xoption.value = districts[i].getAttribute("ID");
var CID = districts[i].getAttribute("CID");
if(id == CID) {
Xoption.innerHTML = districts[i].innerHTML;
document.getElementById("area").appendChild(Xoption);
}
}
}
function callBackFailP() {
alert("服务器出错啦")
}
}
</script>
</html>

您也许感兴趣的篇章:

  • JQuery的ajax获取数据后的拍卖总计(html,xml,json)
  • C# XML与Json之间相互转换实例详解
  • JQuery剖判HTML、JSON和XML实例详解
  • xml转json的js代码
  • 相比剖判json及XML
  • JavaScript将XML转成JSON的方法
  • JSON与XML优劣势相比剖判
  • json跟xml的冲突统一分析
  • 怎么样在JS中落到实处互动转变XML和JSON
  • JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
  • js完结的xml对象转json功效示例
  • JavaScript完毕的XML与JSON互转成效详解

本文由王中王开奖结果发布于关于计算机,转载请注明出处:JSON与XML的区分相比较及案例应用,JSON与XML优缺点

关键词:

上一篇:JavaScript中拿走Radio被选中的值
下一篇:没有了