首页 > 代码库 > [iOS 多线程 & 网络 - 2.1] - 解析json
[iOS 多线程 & 网络 - 2.1] - 解析json
A.iOS中json的基本使用
1.解析json数据
(1)json反序列化
对象
{}
格式 {key : value, key : value,...} 的键值对的结构
可以反序列化为OC中的NSDictionary
数组
[]
格式 ["java","javascript","vb",...]
可以反序列化为OC中的NSArray
提示
JSON的数据格式与OC中的快速包装方法非常类似
JSON的数据格式同样支持嵌套
{}
格式 {key : value, key : value,...} 的键值对的结构
可以反序列化为OC中的NSDictionary
数组
[]
格式 ["java","javascript","vb",...]
可以反序列化为OC中的NSArray
提示
JSON的数据格式与OC中的快速包装方法非常类似
JSON的数据格式同样支持嵌套
(2)json工具
从iOS 5开始,使用NSJSONSerialization对JSON解析
其他常见的三种JSON解析第三方库:
SBJson 因为API简单易用,可能还会有一些应用中留存
JSONKit JSONKit的开发者称:JSONKit的性能优于苹果
TouchJson
其他常见的三种JSON解析第三方库:
SBJson 因为API简单易用,可能还会有一些应用中留存
JSONKit JSONKit的开发者称:JSONKit的性能优于苹果
TouchJson
(3)序列化 & 反序列化
反序列化
[NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
序列化
[NSJSONSerialization dataWithJSONObject:array options:0 error:NULL];
[NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
序列化
[NSJSONSerialization dataWithJSONObject:array options:0 error:NULL];
sample:
1 // 同步发送信息 2 NSData *data =http://www.mamicode.com/ [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 3 4 // 解析数据 5 if (data) { // 得到返回数据 6 // 解除屏幕锁 7 [MBProgressHUD hideHUD]; 8 9 // 解析json数据10 NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];11 12 // 处理返回的数据13 NSString *result = dict[@"success"];14 if (result) {15 [MBProgressHUD showSuccess:result];16 } else {17 result = dict[@"error"];18 if (result) {19 [MBProgressHUD showError:result];20 }21 }22 } else {23 [MBProgressHUD showError:@"网络繁忙,请稍后再试~"];24 }
[iOS 多线程 & 网络 - 2.1] - 解析json
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。