没有 CoreData 的 RestKit 侧载 JSON 关联
Posted
技术标签:
【中文标题】没有 CoreData 的 RestKit 侧载 JSON 关联【英文标题】:RestKit sideload JSON association without CoreData 【发布时间】:2014-07-01 18:02:33 【问题描述】:我正在尝试让 RestKit 在我的 JSON 中使用一些侧载关联,JSON 如下所示:
"companies": [
"id": 1,
"name": "420...",
"street": "420 Kush St.",
"city": "Seattle",
"state": "WA",
"zip_code": "12345"
],
"user":
"id": 1,
"email": "test@example.com",
"token": "1234567890",
"company_id": 1
我没有使用 CoreData 集成,需要我的用户的公司属性填写在上述 JSON 的“公司”键中找到的公司。我当前的用户映射如下所示:
RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[GBUser class]];
[mapping addAttributeMappingsFromDictionary:@
@"id": @"userId",
@"email": @"email"
];
NSIndexSet *statusCodes = RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful);
return [RKResponseDescriptor responseDescriptorWithMapping:mapping method:RKRequestMethodAny pathPattern:@"/api/v0/me" keyPath:@"user" statusCodes:statusCodes];
【问题讨论】:
你读过这个吗? github.com/RestKit/RestKit/wiki/Object-Mapping#relationships 是的,该示例使用嵌套的 JSON 表示,我在多个地方工作过。我需要这个外键关系来正确映射,我也看到了如何使用 CoreData 集成,但并非没有。 【参考方案1】:最简单的选择是在成功块中编写几行代码来关联映射结果中的对象。您将使用 2 个响应描述符分别映射用户和公司,然后在映射完成后将它们组合起来。
【讨论】:
以上是关于没有 CoreData 的 RestKit 侧载 JSON 关联的主要内容,如果未能解决你的问题,请参考以下文章
使用 CoreData 时 RestKit 没有正确映射属性
Restkit 删除 coredata 中特定对象的所有对象
RestKit + CoreData,理解 RKManagedObjectRequestOperation