列表内列表的RestKit对象映射

Posted

技术标签:

【中文标题】列表内列表的RestKit对象映射【英文标题】:RestKit object mapping of list within list 【发布时间】:2014-03-03 19:17:49 【问题描述】:

json api 有一个帖子列表,每个帖子都有一个喜欢这个帖子的用户列表。

post,用户每个人在核心数据中都有一个实体。

RestKit 如何进行对象映射。


    posts:[
        
            "postid":   1,
            "posttext":  "post1",
            "likeusers":[
                
                    "uid":  1,
                    "username":  "user1"
                ,
                
                    "uid":  2,
                    "username":  "user2"
                
            ]
        ,
        
            "postid":   2,
            "posttext":  "post2",
            "likeusers":[
                
                    "uid":  1,
                    "username":  "user1"
                ,
                
                    "uid":  2,
                    "username":  "user2"
                
            ]
        
    ]

【问题讨论】:

看了《RestKit for ios》这本书,然后看了RestKit文档,短时间内得到太多信息,对这个问题一窍不通。下次提问前会先尝试。 【参考方案1】:

以下是如何进行映射:

// User mapping
RKEntityMapping *userMapping = [RKEntityMapping mappingForEntityForName:@"User"
                                                   inManagedObjectStore:yourManagedObjectStore];
userMapping.identificationAttributes = @[@"userID"];
[userMapping addAttributeMappingsFromDictionary:@
                                                  @"uid": @"userID",
                                                  @"username": @"username",
                                                  ];

// Post mapping
RKEntityMapping *postMapping = [RKEntityMapping mappingForEntityForName:@"Post"
                                                   inManagedObjectStore:yourManagedObjectStore];
postMapping.identificationAttributes = @[@"postID"];
[postMapping addAttributeMappingsFromDictionary:@
                                                  @"postid": @"postID",
                                                  @"posttext": @"postText",
                                                  ];

[postMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"likeusers"
                                                                            toKeyPath:@"likeUsers" withMapping:userMapping]];

希望对你有帮助。

【讨论】:

以上是关于列表内列表的RestKit对象映射的主要内容,如果未能解决你的问题,请参考以下文章

Restkit 映射列表 - 没有响应描述符与加载的响应匹配

用于发布 JSON 列表的 RestKit 映射

使用 RestKit 映射空响应的对象

RestKit 对象映射与外键和服务

RestKit - 将数组的键路径映射到该数组内的对象

RestKit 添加属性映射和关系映射