如何从 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 中的完整响应字符串?
如何通过手机sdk中的afnetworking从服务器获取数据