小米技术社区
小米技术社区管理员 关于小米

27岁,山西运城人,职业电商经理人,前端开发工作者,从事过网站建设、网络推广、SEO、SEM、信息流推广、二类电商、网络运维、软件开发,等相关电商工作,经验较为丰富,小米技术社区致力于为广大从事Web前端开发的人员提供一些力所能及的引导和帮助 ...[更多]

E-mail:mzze@163.com

Q Q:32362389

W X:xiaomi168527

小米技术社区大牛王飞 关于王飞

27岁,山西运城人,职业电商经理人,网络工程师兼运维,从事过运营商网络建设,企业网络建设、优化。数据中心网络维护等通过,经验丰富,座右铭:当自己休息的时候,别忘了别人还在奔跑。 ...[更多]

E-mail:wf_live@126.com

Q Q:3940019

微博:王小贱ss

小米技术社区设计小艳 关于小艳

大于花一样的年龄,河南郑州是我家,2010年在北京接触团购网,2011年进入天猫淘宝一待就是四年,如今已经将设计走向国际化(ps:误打误撞开始进入阿里巴巴国际站的设计,嘿嘿)五年电商设计,丰富经验,从事过天猫淘宝阿里各项设计,店铺运营,产品拍摄;我将我的经历与您分享是我的快乐!座右铭:越努力越幸运! ...[更多]

E-mail:97157726@qq.com

Q Q:97157726

标签云
精品推荐
  • json和xml的区别是什么?详细优缺点对比

    json和xml的区别是什么?详细优缺点对比

    json与xml的区别是什么?★json与 XML 相同之处⑴JSON 是纯文本⑵JSON 具有"自我描述性"(人类可读)⑶JSON 具有层级结构(值中存在值)⑷JSON 可通过 JavaScript 进行解析⑸JSON 数……
    459人已经看过了
您的位置:首页 > 前端开发 > Javascript > json+xml

json和xml的区别是什么?详细优缺点对比

分类: json+xml71个赞

在网络中进行数据传输,目前比较流行的两种数据格式,一个是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在网络传输中的用途。


json和XML的目前现状:

json用的越来越广泛了。这种趋势会继续加强。然而xml的情况就不妙了。现在用xml的程序一般都是遗传下来的老程序了。比如10年前的代码,20年前的代码,可能依然在用xml。

XML相比JSON最大的区别就是XML充满了冗余信息。多数时候我们不需要冗余信息,但是一旦需要的时候没有就是不行。这就是XML与JSON最大的区别。


简单点说json与xml的区别是什么?

<1>数据体积方面,JSON相对XML来讲,数据的体积小,传递的速度更快些   JSON胜


<2>数据交互方面,JSON与JavaScript的交互更加方便,有天然的优势,更容易解析处理,更好地进行数据交互  JSON胜


<3>数据描述方面,JSON对数据的描述性比XML较差  XML胜


<4>传输速度方面,JSON的速度要远远快于XML  JSON胜



JSON和XML的优缺点细致对比:


(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。


XML和JSON优缺点


(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的具体优势


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。

图怪兽_026b1278b537d73be0faadc2aa9543ea_75082.jpg

小米技术社区

本站内容均为小米原创,转载请注明出处:小米技术社区>> json和xml的区别是什么?详细优缺点对比