RestKit JSON 映射

Posted

技术标签:

【中文标题】RestKit JSON 映射【英文标题】:RestKit JSON Mapping 【发布时间】:2015-02-24 21:57:51 【问题描述】:

我已经给出 JSON 并且无法解析部分数据。看来字典进字典了:


    "products": [
        
            "id": 6796,
            "title": "my title",
            "description": "desc",
            "code": "12345",
            "valueType": "null",
            "discounts": [
                
                    "minPrice": null,
                    "maxPrice": null,
                    "value": 20,
                    "avail": false
                
            ]
        
    ]

我使用的是最新版本的 RESTKit,但在 discounts 下无法正确解析。

我的 RestKit 设置是:

responseMapping.addAttributeMappingsFromDictionary([

            "id"                        : "id",
            "code"                      : "code",
            "title"                     : "title",
            "valueType"                 : "valueType",
            "description"               : "desc",
            "discounts.minPrice"        : "minPrice",
            "discounts.maxPrice"        : "maxPrice",
            "discounts.value"           : "value",
            "discounts.avail"    : "avail",
            ])

但低于折扣的所有值总是返回 Nil。我做错了什么?

【问题讨论】:

【参考方案1】:

您不能直接使用discounts.XXX 进行映射,因为discounts 是一个数组,您无法对该数组进行索引并提取单个值。

您要么需要更改源 JSON 以从字典中压缩值,要么创建一个自定义对象,您可以将 discounts 数组中的每个项目映射到该对象。

从技术上讲,您可以映射整个 discounts 数组,这将为您提供一个字典数组,然后您可以在 setter 方法中解包,但自定义对象数组通常是更好的方法。

【讨论】:

它帮助了我。我已将映射关系嵌套数组映射为单独的字典。

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

用于发布 JSON 列表的 RestKit 映射

Restkit:来自 JSON parentId 的映射关系

RestKit 0.09:映射 JSON 字符串数组

RestKit 0.20:映射复杂的动态嵌套 JSON

使用 RESTKit 映射带有括号的 JSON 响应

RestKit:JSON 映射不起作用 Objective-c