定义
- XML
可扩展标记语言(英语:Extensible Markup Language,简称:XML).用来传输及存储数据信息,不用来表现或展示数据。
- JSON
- JSON 是一个轻量级的数据格式 ,不是一种编程语言。JSON是一个JavaScript 的严格的子集,利用JavaScript 中一些模式来表示结构化数据。
- 与XML 相比,JSON是在JS中读写结构化数据更好的 方式,因为它可以把JSON 直接传给eval(),而不必创建 DOM 对象。
优缺点
- XML
优点
- 格式统一,符合标准
- 容易与其他系统进行远程交互,数据共享比较方便
缺点
- XML文件庞大,文件格式复杂,传输占带宽
- 服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护
- 客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码
- 服务器端和客户端解析XML花费较多的资源和时间
- JSON
优点
- 数据格式比较简单,易于读写,格式都是压缩的,占用带宽小
易于解析,客户端JavaScript可以简单的通过eval()进行JSON数据的读取- 支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服务器端语言,便于服务器端的解析
- 在PHP世界,已经有PHP-JSON和JSON-PHP出现了,偏于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能直接生成JSON格式,便于客户端的访问提取
- 因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护
缺点
- 没有XML格式这么推广的深入人心和喜用广泛,没有XML那么通用性
- 数据描述性不如XML
数据体积方面
JSON 相对于 XML而言,数据体积小,传递的速度比较快。
与XML序列化相比,JSON序列化后产生的数据一般要比XML序列化后数据体积小,所以在Facebook等知名网站中都采用了JSON作为数据交换方式。
数据交互方面
JSON与javascript的交互更加方便,更容易解析处理。
- 可以把 JSON 数据结构解析为有用的 JavaScript 对象。与XML数据结构要解析成 DOM 文档而且从中提取数据极为麻烦相比,JSON 可以解析为 JavaScript 对象的优势极为明显。
数据描述方面
JSON对数据的描述性比 XML 差。
- XML 文档必须包含根元素,该元素是所有其他元素的父元素。
- XML 文档的元素形成了一颗文档树,这棵树从根部开始并扩展到树的底端。
- 可读性来说,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>
</country>
- JSON 更像一个数据块,读起来比较费解,适合机器阅读。
var country =
{
name: "中国",
provinces: [
{ name: "黑龙江", citys: { city: ["哈尔滨", "大庆"]} },
{ name: "广东", citys: { city: ["广州", "深圳", "珠海"]} }
]
}
传输速度方面
JSON 的速度要远远快于 XML。
- JSON被认为是XML的很好替代者。
- 因为JSON的可读性非常好,而且它没有像XML那样包含很多冗余的元素标签,这使得应用在使用JSON进行网络传输以及进行解析处理的速度更快,效率更高。