在 RestKit 中解析空数组时出错

Posted

技术标签:

【中文标题】在 RestKit 中解析空数组时出错【英文标题】:Error while parsing empty array in RestKit 【发布时间】:2012-06-28 07:32:03 【问题描述】:

我有以下 JSON 结构:

"projekt":
    "id":18,
    "projectname":"test",
    "dokumente":
        "id":1190,
        "name":"rootfolder",
        "information":
            "folder":[
                
                    "id":1191,
                    "name":"folder 1",
                    "information":""
                ,
                
                    "id":1198,
                    "name":"folder 2",
                    "information":
                        "folder":[
                            
                                "id":1199,
                                "name":"folder 2 1",
                                "information":""
                            ,
                            
                                "id":1199,
                                "name":"folder 2 2",
                                "information":""
                            
                        ]
                    
                
            ]
        
    

基本上它是一个递归文件夹结构。我有用于项目、信息和文件夹的 RKObjectMappings。解析顺利,直到达到information=""。 RestKit 现在尝试调用

value = [self.sourceObject valueForKeyPath:relationshipMapping.sourceKeyPath];

在 RKObjectMappingOperation 中,第 442 行。这会失败,因为 sourceKeyPath 是 folder,这在此 information 元素中不可用。这会导致 NSUnknownKeyException 并停止解析。

我想要的是 RestKit 只是忽略信息元素并将其设置为 nil。我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

我忘了设置[informationMapping setIgnoreUnknownKeyPaths:YES];。如果设置了,则忽略异常并且值为 nil。不错!

【讨论】:

如果空数组为空怎么办,例如“信息”:空。我试过 setIgnoreUnkownKeyPaths:YES,但它似乎没有处理空对象。有什么想法吗?

以上是关于在 RestKit 中解析空数组时出错的主要内容,如果未能解决你的问题,请参考以下文章

RESTKit 的问题,无法正确映射

RestKit:创建一个对象而不保存它

在 Restkit 中映射单个 JSON 对象时出错

在 Restkit 中映射单个 JSON 对象时出错

使用 Restkit 解析数组中未命名的 JSON 数组

通过 Cocoapods 安装 RestKit 0.20.0 后基础类型未知