XML与JSON的区别

XML定义:扩展标记语言 (Extensible Markup Language, XML)

用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。XML是标准通用标记语言 (SGML) 的子集,非常适合Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

特性:

  • 扩展标记语言 (Extensible Markup Language)
  • 一种标记语言,很类似HTML;
  • 设计宗旨是传输数据,而非显示数据;
  • 自行定义标签;
  • 被设计为具有自我描述性;
  • W3C的推荐标准;

JSON定义JSON(JavaScript Object Notation)一种轻量级的数据交换格式

具有良好的可读和便于快速编写的特性。可在不同平台之间进行数据交换。这些特性使JSON成为理想的数据交换语言

特性:

  • JavaScript Object Notation 是一种轻量级的数据交换格式
  • 易于人阅读和编写;
  • 同时也易于机器解析和生成;
  • 它基于JavaScript Programming Language , Standard ECMA-262 3rd Edition – December 1999 的一个子集。
  • JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)

JSON和XML的轻/重量级的区别

  • JSON只提供整体解析方案,而这种方法只在解析较少的数据时才能起到良好的效果;
  • 而XML提供了对大规模数据的逐步解析方案,这种方案很适合于对大量数据的处理

数据格式编码及解析的难度

  • 主观:JSON更为清晰且冗余更少些;
  • 总体:XML比较适合于标记文档,而JSON却更适于进行数据交换处理;
  • 解析:XML,都常常导致复杂的代码,极低的开发效率;
  • 实际:对于大多数web应用来说,根本不需要复杂的XML来传输数据

XML优缺点

XML的优缺点

A.格式统一,符合标准;

B.容易与其他系统进行远程交互,数据共享比较方便

XML的缺点

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

B.服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护;

C.客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码;

D.服务器端和客户端解析XML花费较多的资源和时间

JSON优缺点

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格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护

JSON的缺点

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

总结

  • 可读性:JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。
  • 可扩展性:XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
  • 编码难度:XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。
  • 解码难度:XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说
  • 流行度:XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous Javascript and JSON)了

JSON格式的数据比XML轻量并且可读性也比XML要好