RestKit:映射二维数组(Collection in Collection)

Posted

技术标签:

【中文标题】RestKit:映射二维数组(Collection in Collection)【英文标题】:RestKit: Map 2-Dimensional Array (Collection in Collection) 【发布时间】:2012-02-29 15:24:04 【问题描述】:

我只是试图解析一个包含二维数组的 JSON 对象。

例子:


  "2dimarray": [
                 ["key": "val", "key": "val"],
                 ["key": "val", "key": "val"]
               ]

假设2dimarray[x][y]的内容只有一种,我添加了映射:

[objectMapping mapKeyPath:@"2dimarray" toRelationship:@"2dimarray" withMapping: myMappingForIncludedObjects];

在日志中 RestKit 告诉我:

W restkit.object_mapping:RKObjectMappingOperation.m:438 WARNING: Detected a relationship mapping for a collection containing another collection. This is probably not what you want. Consider using a KVC collection operator (such as @unionOfArrays) to flatten your mappable collection.

但实际上这正是我想要的。基本上我假设对象映射器会用NSArray*s 填充我的Objective-C 属性NSArray* 2dimarray,其中包括用myMappingForIncludedObjects 映射的对象。相反,每个数组都映射(当然失败了)myMappingForIncludedObjects

我做错了什么?或者更好:我需要做什么来归档我预期的行为?

【问题讨论】:

这个issue 似乎解决了这个问题。但是,在给定的示例中,外部数组仍然包含对象,这在我的场景中并非如此。 【参考方案1】:

我相信你引用的问题是布莱克解释问题,而不是解决方案。我不认为 RestKit 设置为处理您描述的映射(对象数组的数组)。您可以浏览他在问题中描述的示例以及查看他的提交,您会发现引入的逻辑旨在检测问题并将其记录下来以进行调试。

【讨论】:

以上是关于RestKit:映射二维数组(Collection in Collection)的主要内容,如果未能解决你的问题,请参考以下文章

RestKit:将单个对象映射到现有数组

Restkit:将数组映射到对象

Restkit 0.20 嵌套对象数组映射问题

RestKit:将嵌套数组映射到对象

RestKit如何在数组内映射数组

RestKit 0.09:映射 JSON 字符串数组