NSJSONSerialization-JSON数据与NSDictionary和NSArray之间的转
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; // 所有的网络请求,均有manager发起 //需要注意的是,默认提交请求的数据是二进制的,返回格式是JSON /* AFHTTPRequestSerializer 二进制格式 AFJSONRequestSerializer JSON AFPropertyListRequestSerializer PList(是一种特殊的XML,解析起来相对容易) */ //responseSerializer 接收数据类型 manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"]; //如果报接受类型不一致请替换一致text/html或别的 //post 请求 //operation请求的数据?responseString返回的字符串? [manager POST:GET_POST_INFO_URL parameters:nil success:^(AFHTTPRequestOperation *operation,id responSEObject) { NSLog(@"Success:%@",responSEObject); NSString* requestString=[NSString stringWithString:operation.responseString]; NSData* data=[[NSData alloc] initWithData:[requestString dataUsingEncoding:NSUTF8StringEncoding]];//返回的字符串转换成date NSDictionary* jsonDict=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];//解析json为nsdictionary类型 数据会放在内存中 [data release]; _dataArray=[jsonDict objectForKey:@"data"];
FangYuanViewController* fangYuan=[[FangYuanViewController alloc] initWithNibName:@"FangYuanViewController" bundle:nil]; fangYuan.dataArray=[[[NSMutableArray alloc] init] autorelease]; fangYuan.dataArray=_dataArray; [self addChildViewController:fangYuan]; [self.view addSubview:fangYuan.view]; [fangYuan didMoveToParentViewController:self]; [fangYuan release];
[ProgressHUD showSuccess:@"加载成功"];
NSLog(@"拿到房源数据成功");
} failure:^(AFHTTPRequestOperation *operation,NSError *error) { [ProgressHUD showError:@"加载失败,请检查网路!"]; }];
++++
NSJSONSerialization-JSON数据与NSDictionary和NSArray之间的转化(转)
http://blog.sina.com.cn/s/blog_7b9d64af0101ce92.html
http://blog.sina.com.cn/s/blog_9564cb6e0101wc6f.html
在iOS
通过该类,我们可以完成JSON数据与
NSDictionary和
NSArray之间的转化。
以前,我记得我用的是第三方的插件。但是,苹果出了这套解析后,效率也大大了超过了,所有的解析第三方类库。所以,推荐使用
NSJSONSerialization类来完成转化。
一、将NSDictionary或NSArray转化为JSON串
// - (NSData }
使用这个方法的返回,我们就可以得到想要的JSON串
NSString
二、将JSON串转化为NSDictionary或NSArray
将
NSString转化为
NSData
[jsonString
//
- (id)toArrayOrNSDictionary:(NSData } 三、将JSON串与NSArray和NSDictionary的操作进行封装
当然,也有很多时候,我们将这些操作,分别定义在
NSObject和NSString的一个分类中
直接贴:
1.将NSString转化为NSArray或者NSDictionary
#import @implementation -(id)JSONValue; { } @end 2.将NSArray或者NSDictionary转化为NSString
#import
@implementation -(NSData*)JSONString; { result = [NSJSONSerialization (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |