你如何从AFNetworking和AFJSONRequestOperation获得可变的词典?

时间:2012-02-23 08:55:14

标签: objective-c cocoa-touch nsmutabledictionary afnetworking jsonkit

我正在使用AFNetworking的AFHTTPClient(带AFJSONRequestOperation)使用JSONKit,我似乎无法弄清楚如何触发使用jSONKit的mutableObjectFrom ...方法而不是返回的正常解析器方法(或数组) JKDictionary。

这可以在不修改AFNetworking的情况下实现吗?

3 个答案:

答案 0 :(得分:15)

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

[operation setJSONReadingOptions:NSJSONReadingMutableContainers];

然后,您可以遍历JSON并修改基础NSMutableDictionaries

答案 1 :(得分:2)

如果不编辑AFNetworking代码,则无法执行此操作。

在AFJSONUtilities.m更改(第103行)

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

通过

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

答案 2 :(得分:-1)

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

NSUInteger readOptions = 0

NSUInteger readOptions =  NSJSONReadingMutableContainers