xml与json的对比

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确实比较方便,以后可以试试看。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值