RestKit:映射到对象id的JSON数组的本地到多个关系

时间:2013-12-03 18:30:18

标签: ios json mapping restkit relationship

电路板的另一个RestKit映射问题:

本地我有Core Data对象Group和Message;一个组有许多消息,一个消息可以有许多组被发送到。我需要将消息与组(组)的关系映射到只发送到的组ID(id_number)的JSON数组(group_ids)。基本上我需要我的请求JSON看起来像这样:

{
message:{
   ... // Other message data
   group_ids:[
       1208,
       93,
       ...
   ]
   ...
}
}

我提出的那些自然不起作用的壁橱是:

RKObjectMapping *messageMapping = [RKObjectMapping requestMapping];
[messageMapping addAttributesFromDictionary:@{ @"body":@"body" }];

RKObjectMapping *groupIdMapping = [RKObjectMapping requestMapping];
[groupIdMapping addPropertyMapping:[RKAttributeMappingFromKeyPath:@"id_number" toKeyPath:nil];

[messageMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"groups" toKeyPath:@"group_ids" withMapping:groupIdMapping];

不幸的是,这会在日志中产生结果:

Mapped relationship object from keyPath 'groups' to 'group_ids'. Value: (
  {
    1208 = {};
  }
)

这对我来说有点意义,但我不知道如何解决这个映射。我希望这是一个简单的解决方案,我还没有遇到过。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

为了它的价值,我通过不为这个特定情况创建映射来实现这一点,而只是构建带有所需消息数据的参数字典以传递给[RKObjectManager postObject:path:parameters:success:failure]按照我们的API工作,但我如果可能的话,仍然对如何完成所描述的映射感兴趣。

答案 1 :(得分:0)

尝试:

[messageMapping addAttributesFromDictionary:@{ @"body":@"body", @"groups.id_number":@"group_ids" }];

如果关系内容值为什么,应该使用keypath功能创建数组。