27岁,山西运城人,职业电商经理人,前端开发工作者,从事过网站建设、网络推广、SEO、SEM、信息流推广、二类电商、网络运维、软件开发,等相关电商工作,经验较为丰富,小米技术社区致力于为广大从事Web前端开发的人员提供一些力所能及的引导和帮助 ...[更多]
E-mail:mzze@163.com
Q Q:32362389
W X:xiaomi168527
27岁,山西运城人,职业电商经理人,网络工程师兼运维,从事过运营商网络建设,企业网络建设、优化。数据中心网络维护等通过,经验丰富,座右铭:当自己休息的时候,别忘了别人还在奔跑。 ...[更多]
大于花一样的年龄,河南郑州是我家,2010年在北京接触团购网,2011年进入天猫淘宝一待就是四年,如今已经将设计走向国际化(ps:误打误撞开始进入阿里巴巴国际站的设计,嘿嘿)五年电商设计,丰富经验,从事过天猫淘宝阿里各项设计,店铺运营,产品拍摄;我将我的经历与您分享是我的快乐!座右铭:越努力越幸运! ...[更多]
E-mail:97157726@qq.com
Q Q:97157726
在网络中进行数据传输,目前比较流行的两种数据格式,一个是json,一个是xml。
(1)XML是什么?
1、xml常用于数据存储和传输,文件后缀为 .xml;
2、它是可扩展标记语言(Extensible Markup Language,简称XML),是一种标记语言。
3、XML设计用来传送及携带数据信息,不用来表现或展示数据,所以XML用途的焦点是它说明数据是什么,以及携带数据信息。而HTML语言则用来表现数据
(2)JSON是什么?
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript的一个子集。数据格式简单, 易于读写, 占用带宽小
如:{"age":"12", "name":"back"}
数据传输的方向有两个,一个是从前端传到后端,再一个就是从后端转向前端。
那我们设想一下我们的运行环境。我们有数据库存放数据。我们有程序来读取数据库,来写数据库。对于程序以外的来说,这些数据都是放在黑盒子里面的。程序数据出了黑盒子以后,就需要有一个传输的格式让各种程序都可以理解。这就是json和xml在网络传输中的用途。
json用的越来越广泛了。这种趋势会继续加强。然而xml的情况就不妙了。现在用xml的程序一般都是遗传下来的老程序了。比如10年前的代码,20年前的代码,可能依然在用xml。
XML相比JSON最大的区别就是XML充满了冗余信息。多数时候我们不需要冗余信息,但是一旦需要的时候没有就是不行。这就是XML与JSON最大的区别。
<1>数据体积方面,JSON相对XML来讲,数据的体积小,传递的速度更快些 JSON胜
<2>数据交互方面,JSON与JavaScript的交互更加方便,有天然的优势,更容易解析处理,更好地进行数据交互 JSON胜
<3>数据描述方面,JSON对数据的描述性比XML较差 XML胜
<4>传输速度方面,JSON的速度要远远快于XML JSON胜
(1).可读性方面。
JSON和XML的数据可读性基本相同,JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,XML可读性较好些。
(2).可扩展性方面。
XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
(3).编码难度方面。
XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。
(4).解码难度方面。
XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。
(5).流行度方面。
XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous Javascript and JSON)了。
(6).解析手段方面。
JSON和XML同样拥有丰富的解析手段。
(7).数据体积方面。
JSON相对于XML来讲,数据的体积小,传递的速度更快些。
(8).数据交互方面。
JSON与JavaScript的交互更加方便,更容易解析处理,更好的数据交互。
(9).数据描述方面。
JSON对数据的描述性比XML较差。
(10).传输速度方面。
JSON的速度要远远快于XML。
(1).XML的优缺点
<1>.XML的优点
A.格式统一,符合标准;
B.容易与其他系统进行远程交互,数据共享比较方便。
<2>.XML的缺点
A.XML文件庞大,文件格式复杂,传输占带宽;
B.服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护;
C.客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码;
D.服务器端和客户端解析XML花费较多的资源和时间。
(2).JSON的优缺点
<1>.JSON的优点:
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格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护。
<2>.JSON的缺点
A.没有XML格式这么推广的深入人心和喜用广泛,没有XML那么通用性(现在这一情况正在发生改变);
B.JSON格式目前在Web Service中推广还属于初级阶段。
从以上各个方面的对比,得到的结论是json还是更优秀一些,那么我们看看json的具体优势
<1>JSON 是纯文本
<2>JSON 具有"自我描述性"(人类可读)
<3>JSON 具有层级结构(值中存在值)
<4>JSON 可通过 JavaScript 进行解析
<5>JSON 数据可使用 AJAX 进行传输
<6>json没有结束标签
<7>json读写的速度更快
<8>json能够使用内建的 JavaScript eval() 方法进行解析
<9>json可以使用数组
<10>json不使用保留字
<11>json更短
好了,说了这么多区别,那么来看看具体实例吧:
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表示中国部分省市数据如下:
{ "name": "中国", "provinces": [ { "name": "黑龙江", "citys": { "city": ["哈尔滨", "大庆"] } }, { "name": "广东", "citys": { "citys": ["广州", "深圳", "珠海"] } }, { "name": "山西", "citys": { "city": ["太原", "运城"] } }, { "name": "河南", "citys": { "city": ["郑州"] } } ] }
就编码的可读性来说,XML有明显的优势,毕竟人类的语言更贴近这样的说明结构。JSON读起来更像一个数据块,人类读起来就比较费解了。不过,我们读起来费解的语言,恰恰是适合机器阅读,所以通过JSON的索引provinces[0].name就能够读取“黑龙江”这个值。
字符JSON就明显少很多。去掉空白制表以及换行的话,JSON就是密密麻麻的有用数据,而XML却包含很多重复的标记字符。
结果:综上所述,优先用JSON。
本站内容均为小米原创,转载请注明出处:小米技术社区>> json和xml的区别是什么?详细优缺点对比