JSON 对比 XML

JSON 和 XML 均可用于从 web 服务器接收数据。它们很多地方相似,却又有很多不同的特点,本章节对比两种数据格式,来对比它们的优缺点。

先看看两者的定义:

JSON,一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。

XMl, 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。


JSON 和 XML 的语法实例

下面的 JSON 和 XML 实例都定义了雇员对象,包含了由 3 个雇员构成的数组:

JSON 实例
  1. {"employees":[
  2. { "firstName":"比尔", "lastName":"盖茨" },
  3. { "firstName":"马克", "lastName":"扎克伯格" },
  4. { "firstName":"埃隆", "lastName":"马斯克" }
  5. ]}
XML 实例
  1. <employees>
  2. <employee>
  3. <firstName>比尔</firstName>
  4. <lastName>盖茨</lastName>
  5. </employee>
  6. <employee>
  7. <firstName>马克</firstName>
  8. <lastName>扎克伯格</lastName>
  9. </employee>
  10. <employee>
  11. <firstName>埃隆</firstName>
  12. <lastName>马斯克</lastName>
  13. </employee>
  14. </employees>

JSON 类似 XML,因为:

  • JSON 和 XML 都是“自定义的”,因此在可读性上不分上下
  • JSON 和 XML 都是分级的(值中有值),没有什么是XML能扩展,JSON不能的。
  • JSON 和 XML 都能被大量编程语言解析和使用
  • JSON 和 XML 都能被 XMLHttpRequest 读取

JSON 与 XML 的差异在于:

  • JSON 不使用标签
  • JSON 更短
  • JSON 的读写速度更快
  • JSON 可使用数组
  • JSON 对数据的描述性比 XML 较差。

最大的不同在于:

XML 必须使用 XML 解析器进行解析。而 JSON 可通过标准的 JavaScript 函数进行解析。


为什么 JSON 比 XML 更好?

XML 比 JSON 更难解析。JSON 被解析为可供使用的 JavaScript 对象。对于 AJAX 应用程序,JSON 比 XML 更快更易用:

使用 XML

  • 读取 XML 文档
  • 使用 XML DOM 遍历文档
  • 提取变量中存储的值

使用 JSON

  • 读取 JSON 字符串
  • JSON.Parse JSON 字符串