json解析有什么优缺点? 为什么开发人员更喜欢使用json而不是xml解析?
答案 0 :(得分:10)
...的Json
与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映射 - 例如字符串,intergal和实数,数组和键值表。此外,这些原始数据类型很容易使用它们内置的Foundation - 上面的JSON可以毫不费力地解析为包含“key”,“other key”和“arr”作为键的NSDictionary,它们对应于字符串“价值”,pi作为NSNumber和NSArray,具有奉献精神。同时还需要考虑XML - 也许您甚至必须创建自定义类来表示XML中描述的您自己的数据结构。
特别是对于iOS平台:Cocoa的原生XML解析器,NSXMLParser不仅仅是违反直觉使用。 iOS上的Foundation框架不包括Mac OS X上的Foundation的NSXMLNode类,这迫使开发人员编写自己的spaghetto代码,将所有XML包装到一些结构化数据......好......结构而不是能够使用包含的。
答案 1 :(得分:3)
XML最重要的优势在于它是其他人最容易阅读的格式。
第二个优势是XML已经存在了很长一段时间,许多开发人员已经习惯了它。
如果将JSON文件作为新标记导入,最重要的优点是JSON可以绕过JavaScript的同源策略。请参阅西蒙威利森关于血腥细节的例子。 JavaScript不允许您访问来自其他服务器的文档(无论是XML还是HTML)。但是,如果您将JSON文件作为脚本标记导入,则可以避免此问题,并且可以将任何JSON数据导入任何网站。这取决于您的业务目标,无论这是好事还是坏事,但现在它是唯一允许不受限制访问的数据格式。
第二个优势是JSON数据的脚本比XML数据的脚本稍微简单一些,与JavaScript语言的其余部分一致。
从评论中,JSON被认为比XML更快。