RestKit - 嵌套结构失败

时间:2014-07-04 10:18:18

标签: ios json mapping restkit-0.20

我目前正在项目中使用RestKit,但我面临一些管理此结构的问题:

{"Elements": [
    {
      "Element": {
        "id": "1",
        "property": "house",
        "_addons": [
          {
            "Links": [
              {
                "Link": {
                  "id": "2",
                  "url": "http://www.google.com"
                }
              },
              {
                "Link": {
                  "id": "3",
                  "url": "http://www.google.com"
                }
              }
            ]
          }
        ]
      }
    },
    {
      "Element": {
        "id": "2",
        "property": "garage",
        "_addons": [
          {
            "Links": [
              {
                "Link": {
                  "id": "4",
                  "url": "http://www.google.com"
                }
              },
              {
                "Link": {
                  "id": "5",
                  "url": "http://www.google.com"
                }
              }
            ]
          }
        ]
      }
    }
  ]
}

现在在对象元素中,有属性"链接"这是NSMutableArray(我也试过`NSMutableDictionary,但问题仍然存在)。现在, 如果我试着做

[mapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"_addons.Links.Link" toKeyPath:@"links" withMapping:[Link mapping]]];

我收到一条错误消息,说我无法映射,并且集合中有一个集合。

我找到的唯一解决方案是在映射字典中包含@"_addons.Links" : @"links"。但在这种情况下,我会失去"有机会将映射链接到对象,我必须手动完成。有人有什么建议吗?

1 个答案:

答案 0 :(得分:1)

你不能准确地说出你想要的东西,但是JSON确实在数组中有一个数组,所以你需要以某种方式处理它。选项:

  1. 更改JSON
  2. 创建自定义转换器以获取数组数组并转换为对象数组
  3. 使用2个映射和关系,以便将JSON中的嵌套对象传递到对象图中
  4. 通常,第一个或最后一个选项是最好的。你似乎已经到了最后一个选项的一半,你只需要一个额外的映射和关系。