2011-11-08 44 views
1

我試圖做一個有點怪異的結構化JSON的動態映射。 我有「數組映射爲對象的」之類的變薄,使數組的索引 AKE鍵如:RestKit:如何爲不同的鍵名映射

{ 
"0": {object}, 
"1": {another object}, 
"2": {yet another object}, 
... 
} 

所有的對象都是同一類型的,使他們能夠使用相同的 映射進行分析,而如何應對有不同的關鍵名稱?

回答

3

查看Object Mapping docs中的「處理動態嵌套屬性」部分。

他走過一個例子(這裏複製)與JSON:

{ "blake": { 
    "email": "[email protected]", 
    "favorite_animal": "Monkey" 
    } 
} 

對應於用戶等級:

@interface User : NSObject 
@property (nonatomic, retain) NSString* email 
@property (nonatomic, retain) NSString* username; 
@property (nonatomic, retain) NSString* favoriteAnimal; 
@end 

其中,你會發現,用戶名屬性對應於JSON的

爲了映射它,他用的是特殊的括號語法來表明他們密鑰本身的屬性:

RKObjectMapping* mapping = [RKObjectMapping mappingForClass:[User class] ]; 
[mapping mapKeyOfNestedDictionaryToAttribute:@"username"]; 
[mapping mapFromKeyPath:@"(username).email" toAttribute:"email"]; 
[mapping mapFromKeyPath:@"(username).favorite_animal" toAttribute:"favoriteAnimal"]; 

希望這有助於!

+1

restKit現在已更新,您應該使用['addAttributeMappingFromKeyOfRepresentationToAttribute'](https://github.com/RestKit/RestKit/wiki/Object-mapping#handling-dynamic-nesting-attributes) – chakming