【问题标题】:Mapping JSON key values to Core Data attributes in RestKit 0.20.1将 JSON 键值映射到 RestKit 0.20.1 中的核心数据属性
【发布时间】:2013-05-29 16:33:36
【问题描述】:

鉴于此 JSON:

{ 
    "company": "Big Inc."
    "products": [
        {
            "category": "",
            "daily_sales": {
                "2013-04-13": 23
                "2013-05-27": 67
                "2013-05-28": 89
            }
        },
        {
            "category": "",
            "daily_sales": {
                "2013-04-13": 23
                "2013-05-27": 67
                "2013-05-28": 89
            }
        },
        ...
    ]
}

我想将它展平并保存在这样的对象中:

  • 出售
    • 公司(字符串)
    • 类别(字符串)
    • 日期(日期)
    • 销售额(整数)

所以上面的 JSON 示例会生成 6 个对象。

如何配置 RestKit 中的映射以将键(日期)作为映射值包含到新对象中?

【问题讨论】:

  • 一个单独的对象来容纳这些部分?您不能,因为 JSON 包含一个数组,您如何将所有数组内容映射到单个对象?还是我误解了你的问题?
  • 我想保存它去规范化并为每个日期保存一个对象 - “所以上面的 JSON 示例将生成 6 个对象。”
  • 我认为 RestKit 无法自动为您做到这一点。您需要在映射数据之前对其进行操作,或者将数据映射到另一个对象,然后对其进行后处理。
  • 也许你是对的。但是在使用 RKObjectManager 时,这似乎不是一个很好的方式来挂钩映射链。您需要一个 RKObjectRequestOperation 才能设置 willMapDeserializedResponseBlock 块。我想我需要复制 RKObjectManager 中的 getObjectsAtPathForRelationship...getObjectsAtPathForRouteNamed 方法来设置该块。

标签: ios objective-c core-data restkit restkit-0.20


【解决方案1】:

RestKit 映射无法做到这一点(从 0.20.1 开始)。

您可以修改响应以使其对 RestKit 友好。我在 RKObjectManager 上创建了一个类别,以便轻松提供一个块来修改响应:

https://gist.github.com/gunnarblom/5677324

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多