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。指定顶级节点可以不是数组或字典。
新闻热点
疑难解答