RestKit:映射复杂嵌套的问题,需要forceCollectionMapping的多个级别

我试图用RestKit来映射一些JSON数据,到目前为止还是无法做到这一点。 这些数据是一组等级date和注册。 它看起来像下面(不可能改变它):

{ "days": { "2012-10-29": { "2106303": { "activityCode": "LU", "approved": false, "hours": 0.5, "description": "some description", }, "2106304": { "activityCode": "VF", "approved": false, "hours": 7.5, "description": "some other description", } }, "2012-10-30": null, } } 

我的代码如下所示:

 - (void)setupWeekMappingForManager:(RKObjectManager *)manager { RKObjectMapping *registrationMapping = [RKObjectMapping mappingForClass:[Registration class]]; registrationMapping.forceCollectionMapping = YES; [registrationMapping mapKeyOfNestedDictionaryToAttribute:@"registrationNumber"]; RKObjectMapping *dayMapping = [RKObjectMapping mappingForClass:[Day class]]; dayMapping.forceCollectionMapping = YES; [dayMapping mapKeyOfNestedDictionaryToAttribute:@"date"]; // how can this relationship be mapped? [dayMapping mapKeyPath:@"(date)." toRelationship:@"registrations" withMapping:registrationMapping]; [manager.mappingProvider setMapping:dayMapping forKeyPath:@"days"]; } 

它愉快地回报了日子,但我无法find一个好的方法来映射这两种types之间的关系,

任何推动正确的方向将不胜感激,

最好的问候,汤米

终于自己find了,下面是对我有用的东西:

 - (void)setupWeekMappingForManager:(RKObjectManager *)manager { RKObjectMapping *registrationMapping = [RKObjectMapping mappingForClass:[Registration class]]; registrationMapping.forceCollectionMapping = YES; [registrationMapping mapKeyOfNestedDictionaryToAttribute:@"registrationNumber"]; [registrationMapping mapKeyPath:@"(registrationNumber).description" toAttribute:@"description"]; RKObjectMapping *dayMapping = [RKObjectMapping mappingForClass:[Day class]]; dayMapping.forceCollectionMapping = YES; [dayMapping mapKeyOfNestedDictionaryToAttribute:@"date"]; [dayMapping mapKeyPath:@"(date)" toRelationship:@"registrations" withMapping:registrationMapping]; [manager.mappingProvider setMapping:dayMapping forKeyPath:@"days"]; 

}

这给了我一个小时注册作为一个NSArray的一天对象。 参考它看起来像这样:

 @interface Day : NSObject @property (nonatomic, readonly, copy) NSDate *date; @property (nonatomic, readonly, strong) NSMutableArray *registrations; @end 

如果这对你有帮助,请把这个答案投给:)