2014-03-19 72 views
0

我收到JSON的代码看起来像这样:Restkit:处理动态嵌套属性只返回一个对象

{ 
    "rent": { 
    "items": [ 

    ], 
    "total": 0 
    }, 
    "upcoming": { 
    "items": [ 

    ], 
    "total": 0 
    }, 
    "watchnow": { 
    "items": [ 

    ], 
    "total": 0 
    } 
} 

我要钥匙,即“租”,“即将到来的”和“watchnow”作为一个属性映射的对象,所以我加的NSString财产称为searchSection到类我使用,然后创建的映射:

RKObjectMapping *searchResultsMapping = [RKObjectMapping mappingForClass:[TDXSearchResults class]]; 
[searchResultsMapping addAttributeMappingFromKeyOfRepresentationToAttribute:@"searchSection"]; 

应该不是我mappingResult.array则包含三个TDXSearchResults对象,每个对象或者用“租金“,”upc oming“或”watchnow“的searchSection属性?我只在数组中获得一个TDXSearchResults,这让我非常困惑。

回答

2

因为您的源数据只有1个对象(并且您必须只有1个响应描述符),所以您只能期待1个结果。

如果你想3个结果对象,那么你应该使用:

  1. forceCollectionMapping上映射
  2. 3响应描述符,每个与items相同的映射,并分别使用不同的keyPath(租金/即将到来/ watchnow)。
+0

感谢您的回答,您让我重新阅读了导致我设置searchResultsMapping.forceCollectionMapping这是缺少的文档。 – mattsson

+0

优秀的点,这是最好的解决方案,我忘了!为未来的读者更新了答案。 – Wain