RestKit:如何为不同的键名进行映射

时间:2011-11-08 20:40:53

标签: iphone ios restkit

我正在尝试为一些奇怪的结构化JSON制作动态映射。 我有“数组映射到对象”类型的thins,以便数组索引 ake键例如:

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

所有对象都属于同一类型,因此可以使用相同的方法对它们进行解析 映射,但如何处理不同的键名?

1 个答案:

答案 0 :(得分:3)

查看"处理动态嵌套属性"在Object Mapping docs

他使用JSON:

查看示例(此处复制)
{ "blake": {
    "email": "blake@restkit.org",
    "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"];

希望这有帮助!