使用 RestKit 处理多级动态嵌套属性

Posted

技术标签:

【中文标题】使用 RestKit 处理多级动态嵌套属性【英文标题】:Handling multiple levels of dynamic nesting attributes with RestKit 【发布时间】:2013-10-02 15:16:57 【问题描述】:

这是我要映射的 JSON 示例。它包含 3 个嵌套键,它们是动态值(代表年、月和日)。


  "data" : 
    "2013" : 
      "8" : 
        "1" : [
          
            user : 
              name : "tom"
            
          ,
          
            user : 
              name : "pat"
            
          
        ]
      
    
  

有没有办法将这种 JSON 映射到一个对象中,该对象将具有一个具有 3 个级别的单个 NSDictionary 属性,第 3 个级别是一个用户对象,所有之前的级别都是一个 NSDictionary?

RestKit 文档解释了如何处理一级动态嵌套属性,而不是多级。

感谢您的帮助。

【问题讨论】:

你读过那个吗? github.com/RestKit/RestKit/blob/master/Docs/Object%20Mapping.md 当然,更准确地说是github.com/RestKit/RestKit/blob/master/Docs/…。但正如我所说,它只处理单级动态嵌套属性。 您是否尝试在多个级别上实现它?什么不起作用? 不知道该怎么做。有什么推荐吗? 【参考方案1】:

可能让这个工作的唯一方法是使用nested attribute handling 和dynamic mappings。您可能需要遍历接收到的 JSON 的层次结构并为动态映射中的每个级别创建一个映射。

您可能会发现它更容易,因为只有 User 对象被真正映射,只需使用底层 AFNetworking 代码下载 JSON,然后自己映射 User(您可以使用 RestKit 映射操作)。

【讨论】:

以上是关于使用 RestKit 处理多级动态嵌套属性的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 中使用 RestKit 来处理发送 JSON 而没有 rootkey 的 RESTful 服务器?

带有 RestKit 0.2.0 的嵌套字典

RestKit:将嵌套数组映射到对象

Restkit 动态属性映射

创建 REST API 时使用 Laravel 嵌套动态资源控制器的正确方法

动态属性作为在 iOS 中使用 Restkit 发布 JSON 的关键