·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> json数据解析

json数据解析

作者:佚名      IOS开发编辑:admin      更新时间:2022-07-23

json文件:

{
    "count":"3",
    "friend": [
               {
               "name": "zhangsan",
               "pwd": "12345",
               "nickName": "zs",
               "sex": "nan"
               },
               {
               "name": "lisi",
               "pwd": "12345",
               "nickName": "ls",
               "sex": "nv"
               },
               {
               "name": "wangwu",
               "pwd": "12345",
               "nickName": "ww",
               "sex": "nan"
               }
             ]
}

在json文件中,{}相当于字典,[]相当于数组,所以在对json数据进行解析是,根据获得的数据不同,创建不同的对象来接收

先将数据存入data中,使用系统方法NSJSONSerialization

 //系统json解析,
    //1.要解析的数据对象.   2.解析的类型
    NSMutableDictionary *datadic=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
//获取键为"count"的值
    NSString *count=[datadic objectForKey:@"count"];
    NSLog(@"%@",count);
//获取信息数组
    NSMutableArray *array=[datadic objectForKey:@"friend"];
//遍历输出
    for (int i=0; i<array.count; i++) {
        NSMutableDictionary *dic=array[i];
        NSLog(@"%@",[dic objectForKey:@"name"]);
        NSLog(@"%@",[dic objectForKey:@"pwd"]);
        NSLog(@"%@",[dic objectForKey:@"nickName"]);
        NSLog(@"%@",[dic objectForKey:@"sex"]);
    }

options参数指定了解析JSON的模式,有3种格式可供选择

 

NSJSONReadingMutableContainers。指定解析返回的是可变的数组或字典。如果以后需要修改结果, 图灵社区会员 FAID 专享 尊重版权这个常量是合适的选择。
NSJSONReadingMutableLeaves。指定叶节点是可变字符串。
NSJSONReadingAllowFragments。指定顶级节点可以不是数组或字典。