阅读(2089) (19)

JSON 与 XML 对比

2016-08-12 21:57:38 更新

定义和用途

XML:扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。

JSON(JavaScript Object Notation)是一种轻量级的文本数据交换格式,具有良好的可读和便于快速编写的特性,可在不同平台之间进行数据交换。

JSON 和 XML 都是人类可读的格式并且与语言无关。在现实环境中它们都支持创建,读取和解码。

我们可以通过以下的因素来比较 JSON 和 XML:

冗余度

XML 文件庞大,文件格式复杂,传输占带宽;JSON 数据格式比较简单,易于读写,格式都是压缩的,占用带宽小。

XML 比 JSON 冗余,因此对我们来说编写 JSON 会更快。

数组用法

XML 被用来描述结构化数据,不包含数组;而 JSON 包含数组。

 虽然XML没有数组,但XML也有表示一组数据的方法!

解析

JavaScript:

JavaScript可以使用JSON.parse()方法解析JSON对象。

这是一个例子:

var obj = JSON.parse('{ "name":"John", "age":30, "city":"New York"}');

其中,'{ “name”:“John”, “age”:30, “city”:“New York”}'是JSON对象。

也可以使用 JavaScript 的 eval 方法解析 JSON。当针对 JSON 应用这个方法时,eval 返回描述的对象。但不推荐使用该方法。

eval()方法会执行任何传递给它的JavaScript代码,这可能会导致安全问题。

XML:

可以使用DOMParser对象解析XML文本并返回一个XML Document对象。

这是一个例子:

var parser = new DOMParser();
var xmlDoc = parser.parseFromString(text,"text/xml");

其中,text是XML文本。

示例

下面分别展示了一个 XML 和 JSON 示例:

JSON:

{
    "company":"Volkswagen",
    "name": "Vento",
    "price": 800000
}

XML:

<car>
   <company>Volkswagen</company>
   <name>Vento</name>
   <price>800000</price>
</car>

相关教程

更多关于XML的知识,请参考:XML教程