您的位置:首页 > Web前端 > JavaScript

xml与json的对比

2013-11-03 09:19 169 查看
xml的格式如何,这里无须多言。简单介绍一下json的语法规则。

首先,推荐去http://www.json.org/查看json的语法规则。

简单的说一下,json遵循键值的法则存放数据,键必须为字符串,而值可以为字符串,数字,布尔型的值,对象和数组。

键和值中间用冒号分离,键值对之间用逗号隔开。

比如

{

     "name" : "小三",

     "age"    : 20

}表示一个对象。

或者

["abc","def"]表示一个数组。

一般来说,一对{ }表示一个NSDictionary对象,一对[]表示一个NSArray数组。

以上的

{

     "name" : "小三",

     "age"    : 20

}

这个可以转换成一个NSDictionary对象,这个对象有2个键,一个是name,一个是age,我们可以用objectForKey取相应的值。

["abc","def"]

这个可以转成一个NSArray数组,用objectForKey取值。

http://jsonlint.com/

上面这个网站可以帮你检测你的json字符串构建是否符合语法规则,保证不会漏括号之类的。

举个例子。有个xml

<?xml version="1.0" encoding="UTF-8"?>  

<result>

    <meeting addr="203">

        <creator>张一</creator>

        <member>

            <name>张二</name>

            <age>20</age>

        </member>

        <member>

            <name>张三</name>

            <age>21</age>

        </member>

        <member>

            <name>张四</name>

            <age>22</age>

        </member>

    </meeting>

    <meeting addr="204">

        <creator>李一</creator>

        <member>

            <name>李二</name>

            <age>20</age>

        </member>

        <member>

            <name>李三</name>

            <age>21</age>

        </member>

        <member>

            <name>李四</name>

            <age>22</age>

        </member>

    </meeting>

</result>

转成对应的json

{

    "result": [

              {

              "meeting": {

              "addr": "203",

              "creator": "张一",

              "member": [

                          {

                          "name":"张二",

                          "age":"20"

                          },

                          {

                          "name":"张三",

                          "age":"21"

                          },

                          {

                          "name":"张四",

                          "age":"22"

                          }

                          ]

              }

              },

              {

              "meeting": {

              "addr": "204",

              "creator": "张二",

              "member": [

                          {

                          "name":"张二",

                          "age":"20"

                          },

                          {

                          "name":"张三",

                          "age":"21"

                          },

                          {

                          "name":"张四",

                          "age":"22"

                          }

                          ]

              }

              }

              ]

}

下面说说ios对两种格式的解析把。

对以上xml解析,假设已有一个nsstring或者nsdata存放要解析的xml字符串。

一般来说先构建一个或者多个model模型,用来存放各种属性。

然后实现parser的三个委托方法,,在委托方法里创建model,再存放在本地的一个array里。

而对以上json解析,json的框架为nsstring增加了一个JSONValue方法,对一个存放要解析的json文本的字符串str,直接调用[str JSONValue]就能获得对应的NSDictionary对象,然后不停调用objectForKey的方法取得相应的值。相比xml,json确实比较方便,以后可以试试看。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xml与json的对比