郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。

假设文章对您有所帮助,欢迎给作者捐赠。支持郝萌主,捐赠数额任意。重在心意^_^ 

 


A.iOS中json的基本使用


1.解析json数据


(1)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


 


(3)序列化 & 反序列化


反序列化

[NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];


序列化

[NSJSONSerialization dataWithJSONObject:array options:0 error:NULL];


 


sample:



iOS多线程与网络开发之解析json数据_2d

1     // 同步发送信息
2 NSData *data = [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 }



郝萌主倾心贡献。尊重作者的劳动成果,请勿转载。