“为什么都反对 XML 而支持使用 JSON?”——XML与JSON对比

概念

XML

“当 XML(扩展标记语言)于 1998 年 2 月被引入软件工业界时,它给整个行业带来了一场风暴。有史以来第一次,这个世界拥有了一种用来结构化文档和数据的通用且适应性强的格式,它不仅仅可以用于 WEB,而且可以被用于任何地方。”
—《Designing With Web Standards Second Edition》, Jeffrey Zeldman

XML,可扩展的标识语言(eXtensibleMarkupLanguage),其先驱是SGML和HTML。是一种用于标记电子文件使其具有结构性的标记语言。

JSON

JSON:JavaScript 对象表示法(JavaScript Object Notation)。

JSON 是存储和交换文本信息的语法。类似 XML。

XML和JSON的主要组成成分:

XML是由element和element content还有attribute组成的。

JSON数据类型则比较多:object、array、string、number、Boolean(布尔类型true和false)以及可以有null值。

  • number:和JavaScript的number完全一致;
  • Boolean:就是JavaScript的true或false;
  • string:就是JavaScript的string;
  • null:就是JavaScript的null;
  • array:就是JavaScript的Array表示方式——[];
  • object:就是JavaScript的{ … }表示方式。

优缺点:

XML优点

  • XML使用DTD(document type definition)文档类型定义来组织数据
  • 格式统一,符合标准。
  • 容易与其他系统进行远程交互,数据共享比较方便。

XML缺点

  • XML文件庞大,文件格式复杂,传输占带宽;
  • 客户端下面,不同浏览器之间解析XML的方式不一致,很多时候都会导致代码会有好多重复的,即充满了冗余信息(许多标记性的符号)。
  • 服务器端和客户端解析XML花费较多的资源和时间。

JSON优点

  • JSON 比 XML 更小、更快,更易解析
  • 数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;
  • JSON 是轻量级的文本数据交换格式
  • 易于解析,客户端JavaScript可以简单的通过eval()进行JSON数据的读取;
  • JSON 独立于语言,便于服务器端的解析;
  • 在PHP世界,已经有PHP-JSON和JSON-PHP出现了,偏于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能直接生成JSON格式,便于客户端的访问提取;
  • 因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护。即JSON 具有自我描述性,更易理解。

JSON缺点

  • 没有XML格式这么推广的深入人心和喜用广泛,没有XML那么通用性。
  • JSON格式目前在Web Service中推广还属于初级阶段。

在编码方面的比较:

虽然XML和JSON都有各自的编码工具,但是JSON的编码要比XML简单。
即使不借助工具,也可以写出JSON代码,但要写出好的XML代码就有点困难;。
与XML一样,JSON也是基于文本的,且它们都使用Unicode编码,且其与数据交换格式XML一样具有可读性。
主观上来看,JSON更为清晰且冗余更少些。JSON网站提供了对JSON语法的严格描述,只是描述较简短。从总体来看,XML比较适合于标记文档,而JSON却更适于进行数据交换处理。

代码比较

XML代码

<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

json代码

{
	"note": [
		{
			"to":"George" , 
			"from":"John" ,
			"heading":"Reminder" , 
		 	"body":"Don't forget the meeting!" 
		}
	]
}

根据代码可以看出来:
就编码的可读性来说,XML有明显的优势,毕竟人类的语言更贴近这样的说明结构。JSON读起来更像一个数据块,读起来就比较费解了。不过,我们读起来费解的语言,恰恰是适合机器阅读。
就编码的手写难度来说,XML还是舒服一些,好读当然就好写。不过写出来的字符JSON就明显少很多。去掉空白制表以及换行的话,JSON就是密密麻麻的有用数据,而XML却包含很多重复的标记字符。

关于为什么大多数人都反对XML而支持使用JSON,以上就是小编的总结,下面是我在网上看到的各位大佬的回复:

A:在普通的web应用领域,开发者经常为XML的解析伤脑筋,无论是服务器端生成或处理XML,还是客户端用 JavaScript 解析XML,都常常导致复杂的代码,极低的开发效率。
实际上,对于大多数Web应用来说,他们根本不需要复杂的XML来传输数据,XML宣称的扩展性在此就很少具有优势,许多Ajax应用甚至直接返回HTML片段来构建动态Web页面。和返回XML并解析它相比,返回HTML片段大大降低了系统的复杂性,但同时缺少了一定的灵活性。同XML或 HTML片段相比,数据交换格式JSON 提供了更好的简单性和灵活性。在Web Serivice应用中,至少就目前来说XML仍有不可动摇的地位。

B:在数据传输的应用下,我会更倾向json,但在人机都需要识别数据的时候,比如配置文件,我还是倾向xml,xml的可读性比json好。正如轮子哥说的,这两者不是互相替代。

C:JSON 比XML看着顺眼。

若是还有什么疑问,可以评论区里面发出来,大家相互交流,或者可以私我

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值