如何从 AFNetworking 和 AFJSONRequestOperation 获得可变字典?

Posted

技术标签:

【中文标题】如何从 AFNetworking 和 AFJSONRequestOperation 获得可变字典?【英文标题】:How do you get mutable dictionaries from AFNetworking and AFJSONRequestOperation? 【发布时间】:2012-02-23 08:55:13 【问题描述】:

我将 JSONKit 与 AFNetworking 的 AFHTTPClient(带有 AFJSONRequestOperation)一起使用,我似乎无法弄清楚如何触发使用 JSONKit 的 mutableObjectFrom... 方法,而不是返回(或数组)的普通解析器方法的)JKDictionary。

是否可以在不修改 AFNetworking 的情况下实现这一点?

【问题讨论】:

***.com/questions/19998735/… 【参考方案1】:

在最新版本的 AFNetworking 中,您无需修改​​代码即可实现此目的。 创建 AFJSONRequestOperation *操作后 & 在调用 [操作开始] 之前,添加

[operation setJSONReadingOptions:NSJSONReadingMutableContainers];

然后您可以遍历 JSON 并修改底层 NSMutableDictionaries

【讨论】:

【参考方案2】:

如果不编辑 AFNetworking 代码,您将无法做到这一点。

在 AFJSONUtilities.m 中更改(第 103 行)

SEL _JSONKitSelector = NSSelectorFromString(@"objectFromJSONDataWithParseOptions:error:"); 

SEL _JSONKitSelector = NSSelectorFromString(@"mutableObjectFromJSONDataWithParseOptions:error:"); 

【讨论】:

问题是关于 JSONKit【参考方案3】:

对于 AFNetworking 的基于 NSJSONSerialization 的操作,在 AFJSONUtilities.m 第 203 行,更改:

NSUInteger readOptions = 0

NSUInteger readOptions =  NSJSONReadingMutableContainers 

【讨论】:

以上是关于如何从 AFNetworking 和 AFJSONRequestOperation 获得可变字典?的主要内容,如果未能解决你的问题,请参考以下文章

如何直接从 iPad 应用程序使用 AFNetworking 上传图像

如何从服务器获取 AFNetworking 中的完整响应字符串?

如何从 AFNETWORKING POST 获取参数

如何通过手机sdk中的afnetworking从服务器获取数据

AFNetworking 2.0 - 如何从子类 AFHTTPSessionManager 成功将响应传递给另一个类

如何从 AFnetworking 2.0 操作/NSURLSessioNDataTask 获取原始 JSON 响应?