Iphone RestKit对象映射-一个实体,两个映射

Iphone RestKit对象映射-一个实体,两个映射,iphone,core-data,mapping,restkit,Iphone,Core Data,Mapping,Restkit,我从服务器接收到的JSON更改为以下内容后,我一直在处理映射以将数据与核心数据一起保存 实体 Key - alias - key - keyType - keyword - unid - until JSON(来自服务器) 现在我想映射实体“key”的“data”加上键“until”的所有数据,但找不到正确的解决方案。到目前为止,我获取数据的映射看起来是这样的,并且效果很好,但当然没有找到“直到”键 RKManagedObjectMapping* keyMapping = [

我从服务器接收到的JSON更改为以下内容后,我一直在处理映射以将数据与核心数据一起保存

实体

 Key 
 - alias 
 - key
 - keyType
 - keyword
 - unid
 - until
JSON(来自服务器)

现在我想映射实体“key”的“data”加上键“until”的所有数据,但找不到正确的解决方案。到目前为止,我获取数据的映射看起来是这样的,并且效果很好,但当然没有找到“直到”键

RKManagedObjectMapping* keyMapping = [RKManagedObjectMapping mappingForClass:[Key class]];
keyMapping.rootKeyPath = @"data";
[keyMapping mapKeyPath:@"key" toAttribute:@"key"];
[keyMapping mapKeyPath:@"keyword" toAttribute:@"keywordEN"];
[keyMapping mapKeyPath:@"alias" toAttribute:@"alias"];
keyMapping.setDefaultValueForMissingAttributes = YES;

谢谢你的想法

您可能需要执行两个映射。第一个映射将包含整个对象,并与嵌套的“数据”路径有关系

RKObjectMapping *keyMapping = [RKObjectMapping mappingForClass:[Key class]];
[keyMapping mapAttributes:@"alias", @"key", nil];
[keyMapping mapKeyPath:@"keyword" toAttribute:@"keywordEN"];

RKObjectMapping *outerMapping = [RKObjectMapping mappingForClass:[Container class]];
[outerMapping mapKeyPath:@"data" toRelationship:@"keys" withMapping:keyMapping];
[outerMapping mapAttributes:@"since", @"until", "maxCount", "documentsFound", nil];

这将为您提供一个包含元数据的新对象,然后在容器的keys属性上提供一个key对象数组。您可以在0.9.4开发分支(即将发布)上使用基于resourcePath的映射注册,而不是使用rootKeyPath。

再次感谢您提供了快速而精彩的答案。我将尽快下载0.9.4;)
RKObjectMapping *keyMapping = [RKObjectMapping mappingForClass:[Key class]];
[keyMapping mapAttributes:@"alias", @"key", nil];
[keyMapping mapKeyPath:@"keyword" toAttribute:@"keywordEN"];

RKObjectMapping *outerMapping = [RKObjectMapping mappingForClass:[Container class]];
[outerMapping mapKeyPath:@"data" toRelationship:@"keys" withMapping:keyMapping];
[outerMapping mapAttributes:@"since", @"until", "maxCount", "documentsFound", nil];