AFNetworking 2.0 - 使用responseObject作为的NSDictionary

问题:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:@"http://example.com/resources.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];

这是送 recommended way 请求AFNetworking 2.0  

GET

.我想要得到的json的特定键的值,所以我想用 

responseObject

为 

NSDictionary

.这就是我试图:

NSError *jsonError = nil;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:(NSData *)responseObject options:kNilOptions error:&jsonError];

它不工作:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary bytes]: unrecognized selector sent to instance 0xa048120'

我怎样才能得到在 

responseObject

特定键的值?


答案
Rank --  3 

默认情况下, 

AFHTTPRequestOperationManager

responseSerializer

设置为一个 

AFJSONResponseSerializer

实例,因此 

responseObject

已经是你的已解析的JSON(你的情况,它会根据你所说的是一个 

NSDictionary

).

然后,只是用它作为你会使用字典:

NSString *value = responseObject[@"someKey"];


Rank --  0 

响应对象已经是一本字典! AFNetworking做了处理,对你.


参考:http://www.freeshow.net.cn/questions/a8ddaf2cdccbdd6ccf59b1451dcbc0c8a62aec01a36275181e3b77845bdd7ccd/



Answer:

By default, AFHTTPRequestOperationManager sets responseSerializer to an AFJSONResponseSerializer instance, so responseObject already is your parsed JSON (in your case, it'll be an NSDictionary according to what you said).

Then, just use it as you'd use a dictionary:

NSString *value = responseObject[@"someKey"];

参考:http://stackoverflow.com/questions/19086660/afnetworking-2-0-use-responseobject-as-nsdictionary




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值