Restkit:嵌套关系映射

Posted

技术标签:

【中文标题】Restkit:嵌套关系映射【英文标题】:Restkit: Nested relationship mapping 【发布时间】:2014-07-15 15:58:05 【问题描述】:

我有以下 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"
                            
                        ]
                    ,
                    ...
                ]
            
        ,
        ...
    ]

映射到以下实体:

类别(投票类别值) 提名(答案值) 艺术家(相关项目值)

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

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

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

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

谢谢

奥利

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于Restkit:嵌套关系映射的主要内容,如果未能解决你的问题,请参考以下文章

RestKit .22:无法成功映射与嵌套 JSON 的关系

RestKit 将未嵌套关系映射到拥有对象

RestKit - Nil 被映射到嵌套对象中以建立关系

Restkit 映射复杂的嵌套数组

RestKit 嵌套关系

如何使用 RestKit 正确测试映射(嵌套映射,对多)