我的問題與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中,如何在不使用密鑰的情況下映射屬性?