Restkit:嵌套关系映射

时间:2014-07-15 15:58:05

标签: ios json core-data restkit

我有以下JSON:

{
    "votecategory": [
        {
            "id": "nlvfl2",
            "title": "Best Song",
            "pollQuestion": {
                "id": "nbprqp",
                "title": "best-song",
                "displayText": "Best Song",
                "answer": [
                    {
                        "id": "qylaw4",
                        "title": "Bruno Mars – Locked Out Of Heaven",
                        "relatedItems": [
                            {
                                  "Name": "Bruno Mars",
                                  "id": "sljkur",
                                  "Bio": "Bio info here"
                            },
                            {} //Sometimes there's an empty object
                        ],
                        "winner": "true"
                    },
                    {
                        "id": "q05sb3",
                        "title": "Daft Punk – Get Lucky (ft. Pharrell Williams)",
                        "displayText": "Daft Punk – Get Lucky (ft. Pharrell Williams)",
                        "relatedItems": [
                            {
                                "Name": "Daft Punk",
                                "id": "d9sd84",
                                "Bio": "Bio info here"
                            }
                        ]
                    },
                    ...
                ]
            }
        },
        ...
    ]
}

映射到以下实体:

  • 类别(投票类别值)
  • 提名(答案价值)
  • 艺术家(relatiedItems值)

我设法为votecategory(类别)设置对象和关系映射 - >回答(提名),但是我在向艺术家提名时遇到了问题。

我需要做的是在提名和艺术家之间建立1:1核心数据关系,并在艺术家和提名之间设置1:N关系(一个艺术家可以有多个提名)。

问题是“relatedItems”是一个数组,但实际上只包含1个可用值,即相关的艺术家。从数据的角度来看,这应该是一个1:1的关系,但是JSON将它映射为1:N关系,这会使restkit混淆(理所当然)。

如何将JSON relatedItems响应中的单个项目存储为单个1:1关系?

由于

奥利

1 个答案:

答案 0 :(得分:0)

您可以在该映射上使用自定义值转换器,将数组转换为单个对象。查看this question了解更多详情。