我有两个班级
并希望将一些JSON映射到它
"authors": [
{
"id": 123,
"papers": [
{
"id": 1,
"main_author_id": 123,
...
},
...
]
},
...
]
问题是JSON的结构不像
"authors": [
{
"id": 123,
"papers": [
{
"id": 1,
"main_author": {
"id": 123
}
...
},
...
]
},
...
]
这样我就可以轻松映射事物(注意两个JSON示例的* main_author *部分)。我尝试使用映射此值而没有关键路径here:
[authorMapping addAttributeMappingToKeyOfRepresentationFromAttribute:@"main_author_id"];
[authorMapping addAttributeMappingsFromDictionary:@{@"(main_author_id)": @"id"}];
但是我收到错误,告诉我keyPath id 已经存在,我可能不会为此keyPath添加第二个映射。我完全理解这个错误,但我不知道如何从* main_author_id *映射回 id 。更改数据源可能是最佳解决方案,但遗憾的是,这是不可能的。
非常欢迎任何建议!谢谢!
答案 0 :(得分:1)
这正是外键映射的用途。它允许您临时存储您提供的“身份”值,然后RestKit将找到适当的对象并完成关系。
答案 1 :(得分:0)
除了提供的Answer @Wain(外键映射)之外,还可以实现自定义序列化(c.f。RKSerialization)并在映射发生之前修改对象。但是,上述方法优于这种(某种程度上难看的)解决方案。