我的问题与RestKit: mapping JSON array of strings非常相似,只是它特定于RestKit 0.09。我看了其他几个问题,但仍然陷入困境。RestKit 0.09:映射JSON数组字符串
由于我无法控制的原因,我无法升级到RestKit 0.20。我正在使用的JSON是:
{
"brands":[
"AN",
"UO",
"FP",
"TR",
"BN"
],
"meta":{
"message":"Current Registry Configuration."
},
"event_types":[
"WEDDING",
"ANNIVERSARY",
"BIRTHDAY",
"HOUSEWARMING",
"SPECIAL OCCASION"
],
"links":[
]
}
我能够映射“meta”(和其他几个域)对象就好了。但我无法映射“event_types”,并且不需要“品牌”或“链接”。
我当前的代码如下:
+ (void) addElementMappings:(RKObjectMapping *)mapping
{
if ([[self superclass] respondsToSelector:@selector(addElementMappings:)]) {
[[self superclass] performSelector:@selector(addElementMappings:)
withObject:mapping];
}
[mapping mapKeyPath:@"event_types"
toAttribute:@"eventType"];
RKObjectManager* objectManager = [RKObjectManager sharedManager];
if (![objectManager.mappingProvider mappingForKeyPath:@"event_types"]) {
[objectManager.mappingProvider setMapping:mapping
forKeyPath:@"event_types"]; // for KVC path
}
}
和EVENTTYPE是的NSArray(我也尝试将其定义为NSString的 - 相同的结果,如下)。
就这样,代码会抛出一个异常“此类不是关键字event_types的编码兼容关键值”。
如果我从@“event_types”将mapKeyPath更改为nil(类似于0.20),则会出现异常“无法定义映射要映射的元素名称的元素”。
如果我完全省略[mapping mapKeyPath:toAttribute],没有例外,但我只能获取元对象,而不是event_types。
在RestKit 0.09中,如何在不使用密钥的情况下映射属性?