0

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

{"users":[users]}

使用简单的 RKObjectMapping 和 RKResponseDescriptor,当我使用 getObjectsAtPath 时,我能够成功地将这个 JSON 映射到用户对象的集合中,但现在我想对 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}

有小费吗?

4

1 回答 1

0

RestKit 基于将数据映射到对象,而不是您所追求的对象。您可以获得的最接近的是将 映射trueNSNumber字典或数组内部。尝试:

RKObjectMapping *moreMapping = [RKObjectMapping requestMapping];
[moreMapping addPropertyMapping:[RKAttributeMapping attributeMappingFromKeyPath:nil toKeyPath:@"more"]];
于 2013-06-28T17:15:02.863 回答