RestKit基本K-V映射

时间:2013-06-28 16:49:02

标签: restkit-0.20

我有一个从我的服务器返回的JSON有效负载,其结构如下:

{"users":[users]}

使用简单的RKObjectMapping和RKResponseDescriptor,当我使用getObjectsAtPath时,我能够成功将此JSON映射到User对象的集合中,但现在我想对JSON服务器端进行一些修改。也就是说,我想添加一个关键路径

{"users":[users], "more":true}

其中键路径“more”表示是否有更多用户要加载未包含在“users”数组中的用户。我遇到的问题是我找不到一种简单的方法来访问这个“更多”关键路径的值。理想情况下,我想定义一个映射和响应描述符,将“更多”映射到BOOL(或NSNumber),但我无法弄清楚如何执行此操作。添加像

这样的映射

RKObjectMapping *moreMapping = [RKObjectMapping mappingForClass:[NSNumber class]]

使用ResponseDescriptor

[RKResponseDescriptor responseDescriptorWithMapping:moreMapping pathPattern:pathPattern
keyPath:@"more" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];

不行。最后,在getObjects的成功块中,我希望我的RKMappingResult结构如下:

@{@"users":[users], @"more":1}

任何提示?

1 个答案:

答案 0 :(得分:0)

RestKit基于将数据映射到对象中,而不是以您所追求的方式映射到对象。您可以获得的最接近的地方是将true映射到字典或数组中的NSNumber。尝试:

RKObjectMapping *moreMapping = [RKObjectMapping requestMapping];
[moreMapping addPropertyMapping:[RKAttributeMapping attributeMappingFromKeyPath:nil toKeyPath:@"more"]];