我有一个从我的服务器返回的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}
任何提示?
答案 0 :(得分:0)
RestKit基于将数据映射到对象中,而不是以您所追求的方式映射到对象。您可以获得的最接近的地方是将true
映射到字典或数组中的NSNumber
。尝试:
RKObjectMapping *moreMapping = [RKObjectMapping requestMapping];
[moreMapping addPropertyMapping:[RKAttributeMapping attributeMappingFromKeyPath:nil toKeyPath:@"more"]];