6

json解析的优缺点是什么?为什么开发人员更喜欢使用 json 而不是 xml 解析?

4

2 回答 2

10

杰森...

与 XML 相比,开销更小 - XML 的结束标记将样板代码大小增加了大约 2 倍。它也更易于阅读 - 考虑一下

{
  "key": "value",
  "other key": 3.1415926535897932,
  "arr": [
    1,
    2,
    3
  ]
}

相对

<?xml version="1.0"?>
<!-- not to mention the DTD declaration -->
<myXmlFormat>
  <key>value</key>
  <otherKey>3.1415926535897932</otherKey>
  <arr>
    <number>1</number>
    <number>2</number>
    <number>3</number>
  </arr>
</myXmlFormat>

更容易和更快地解析(因为它更轻量级) - 有很多 JSON 解析器本身比相同编程语言中的 XML 解析器对应物更小和更快(考虑 libxml2 与 js0n)。

JSON 的数据类型还与传统上被认为是“原始”的数据类型进行 1:1 映射 - 例如字符串、整数和实数、数组和键值表。此外,这些原始数据类型很容易与 Foundation 一起使用,它们内置于其中 - 上面的 JSON 可以轻松解析为包含“key”、“other key”和“arr”作为键的 NSDictionary,它们对应于字符串“值”,pi 分别作为 NSNumber 和 NSArray。同时还必须考虑 XML ——也许您甚至必须创建自定义类来表示您自己在 XML 中描述的数据结构。

专门针对 iOS 平台:Cocoa 的原生 XML 解析器,NSXMLParser 使用起来不仅违反直觉。iOS 上的 Foundation 框架不包括 Mac OS X 上 Foundation 的 NSXMLNode 类,这迫使开发人员编写自己的意大利面条代码来将所有 XML 包装到一些结构化数据中……嗯……结构而不是能够使用包含的。

于 2012-08-22T07:10:23.563 回答
2

XML

好处

  • XML 最重要的优点是它是其他人最容易阅读的格式。

  • 第二个优点是 XML 已经存在了很长一段时间,而且许多开发人员已经习惯了它。

缺点

  • 将数据插入 HTML 页面所需的 JavaScript 非常冗长。

JSON

好处

  • 最重要的优势是 JSON 绕过 JavaScript 的同源策略,如果您将 JSON 文件作为新标签导入。有关血腥细节,请参见 Simon Willison 的示例。JavaScript 不允许您访问来自其他服务器的文档(无论是 XML 还是 HTML)。但是,如果您将 JSON 文件作为脚本标签导入,则可以规避此问题,并且可以将任何 JSON 数据导入任何网站。这取决于您的业务目标,这是好事还是坏事,但目前它是唯一允许无限制访问的数据格式。

  • 第二个优点是 JSON 数据的脚本比 XML 数据的脚本稍微简单一些,并且更符合 JavaScript 语言的其余部分。

缺点

  • JSON 最重要的缺点是该格式很难被人类阅读,当然,每个逗号、引号和括号都应该在正确的位置。虽然 XML 也是如此,但 JSON 的大量看起来很复杂的语法,例如数据片段末尾的 }}]},可能会吓到新手并导致复杂的调试。

从评论来看,JSON 被认为比 XML 处理得更快。

于 2012-08-22T07:29:01.993 回答