json解析的优缺点是什么?为什么开发人员更喜欢使用 json 而不是 xml 解析?
2 回答
杰森...
与 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 包装到一些结构化数据中……嗯……结构而不是能够使用包含的。
XML
好处
XML 最重要的优点是它是其他人最容易阅读的格式。
第二个优点是 XML 已经存在了很长一段时间,而且许多开发人员已经习惯了它。
缺点
- 将数据插入 HTML 页面所需的 JavaScript 非常冗长。
JSON
好处
最重要的优势是 JSON 绕过 JavaScript 的同源策略,如果您将 JSON 文件作为新标签导入。有关血腥细节,请参见 Simon Willison 的示例。JavaScript 不允许您访问来自其他服务器的文档(无论是 XML 还是 HTML)。但是,如果您将 JSON 文件作为脚本标签导入,则可以规避此问题,并且可以将任何 JSON 数据导入任何网站。这取决于您的业务目标,这是好事还是坏事,但目前它是唯一允许无限制访问的数据格式。
第二个优点是 JSON 数据的脚本比 XML 数据的脚本稍微简单一些,并且更符合 JavaScript 语言的其余部分。
缺点
- JSON 最重要的缺点是该格式很难被人类阅读,当然,每个逗号、引号和括号都应该在正确的位置。虽然 XML 也是如此,但 JSON 的大量看起来很复杂的语法,例如数据片段末尾的 }}]},可能会吓到新手并导致复杂的调试。
从评论来看,JSON 被认为比 XML 处理得更快。