Json解析vs xml解析?

Jay*_*raj 6 xml json

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

小智 10

JSON ...

与XML相比具有更小的开销 - XML的结束标记将样板代码大小增加了大约2倍.它也更人性化 - 考虑

{
  "key": "value",
  "other key": 3.1415926535897932,
  "arr": [
    1,
    2,
    3
  ]
}
Run Code Online (Sandbox Code Playgroud)

<?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>
Run Code Online (Sandbox Code Playgroud)

解析更容易,更快(因为它更轻量级) - 有许多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包装到一些结构化数据......好......结构而不是能够使用包含的.