没有 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 保存

RestKit + CoreData,理解 RKManagedObjectRequestOperation

当它们没有出现在 JSON 中时,Restkit 删除 Coredata 中的对象

CoreData 和 RestKit