JSON 与 XML 对比
定义和用途
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教程