Json解析vs xml解析?

时间:2012-08-22 06:58:06

标签: xml json

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

2 个答案:

答案 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最重要的优势在于它是其他人最容易阅读的格式。

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

缺点

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

JSON

优点

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

  • 第二个优势是JSON数据的脚本比XML数据的脚本稍微简单一些,与JavaScript语言的其余部分一致。

缺点

  • JSON最重要的缺点是格式很难为人类阅读,当然,每个逗号,引号和括号都应该在正确的位置。虽然对于XML也是如此,JSON的复杂外观语法,如数据片段末尾的}}]},可能会吓到新手并进行复杂的调试。

从评论中,JSON被认为比XML更快。