OGeek|极客世界-中国程序员成长平台

标题: ios - 从RestKit中的json中的兄弟节点映射对象 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 16:05
标题: ios - 从RestKit中的json中的兄弟节点映射对象

JSON

{
   "entity": {
      "id": 1,
      "name": "name"
   },
   "settings": {
      "key": "value"
   }
}

实体模型

属性:id、name

关系:设置(一对一)

设置模型

属性:键

关系:实体(反向关系,一对一)

实体映射

RKEntityMapping *mapping = [RKEntityMapping mappingForEntityForName:NSStringFromClass([self class]) inManagedObjectStore:[RKManagedObjectStore defaultStore]];
mapping.persistentStore = [RKManagedObjectStore defaultStore].persistentStoreCoordinator.persistentStores.firstObject;

mapping.identificationAttributes = @[@"id"];
[mapping addAttributeMappingsFromDictionary{
                                              @"id" : @"id",
                                              @"name" : @"name"
                                              }];

如果设置在 json 响应中的实体内,我会添加这个

[mapping addPropertyMapping:
    [RKRelationshipMapping relationshipMappingFromKeyPath"settings" 
      toKeyPath"settings" withMapping:[Settings map]]
];

但我的响应 id 与此不同,那么我应该如何正确映射?



Best Answer-推荐答案


entitysettings 都在容器字典中,因此您可以将响应描述符更改为到目前为止不向下钻取,然后使用关键路径来钻取 entity 部分并可以直接访问 settings 部分:

[mapping addAttributeMappingsFromDictionary{
                                          @"entity.id" : @"id",
                                          @"entity.name" : @"name"
                                          }];

[mapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath"settings" toKeyPath"settings" withMapping:[Settings map]]];

关于ios - 从RestKit中的json中的兄弟节点映射对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32088623/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4