【问题标题】:How do I make my AFNetworking "responseObject" that I receive a NSDictionary I can parse?如何使我收到可以解析的 NSDictionary 的 AFNetworking “responseObject”?
【发布时间】:2014-01-23 18:02:57
【问题描述】:

我使用 AFNetworking 1.0 进行了这个调用,它返回了一个 responseObject,其中包含我想要的 API 中的数据:

[[AFDiffbotClient sharedClient] postPath:@"http://diffbot.com/api/batch" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {

但是,我不知道如何处理responseObject

如果我检查[responseObject class],我会得到NSData

如果我NSLog(@"%@", responseObject) 我得到一堆数字(我假设的内存地址):

如果我这样做:

NSString *responseString = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"%@", responseString);

我得到了我想要的输出! 但是,这是NSString

如果我这样做:

NSError *error;
NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:responseObject options:kNilOptions error:&error];
NSLog(@"%@", responseDictionary);

我收到了NSDictionary,但它缺少绝大多数响应(即:我没有收到 NSString 方法中包含的内容)。

我应该如何处理这个对象?

【问题讨论】:

  • 您是否尝试使用 JSON 编码从 php 获取数据?这很容易使用。
  • 你到底是什么意思?
  • 显示示例字符串内容和相应的字典内容以及返回的任何错误。
  • 你应该从你的服务器接收什么? JSON数据?你确定你的json有效吗?在您可以在线找到的 json 验证器中复制/粘贴您的 nsstring。如果它有效并且您遗漏了一些东西,那么它会变得更加复杂,否则请修复 json
  • 您是否尝试过不同的选项而不是 kNilOptions?

标签: ios objective-c nsdictionary afnetworking nsdata


【解决方案1】:

我就是这样做的..

- (void) requestDataFinish:(NSData *)data withError:(NSError *)networkError
{
    NSDictionary *responseData;
    NSError *error = nil;
    if (data != nil) {
        responseData = [NSJSONSerialization JSONObjectWithData:data
                                                       options:NSJSONReadingMutableContainers
                                                         error:&error];
    }
...

【讨论】:

  • 我想亲你的嘴。 (修复它的是 NSJSONReadingMutableContainers。)
猜你喜欢
  • 2013-10-05
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多