循环到未知 JSON 数据时如何在 allKeys 上捕获错误?

Posted

技术标签:

【中文标题】循环到未知 JSON 数据时如何在 allKeys 上捕获错误?【英文标题】:How to trap an error on allKeys when looping down into unknown JSON data? 【发布时间】:2013-11-06 02:36:53 【问题描述】:

我正在收集未知结构的 JSON 数据,并尝试在 allKeys 的帮助下整理字典和数组。但是当我到达底部时,allKeys 被应用于不是字典的东西,当然,它会抛出一个错误并且代码崩溃。如何检测错误并避免崩溃?

【问题讨论】:

您可以从分享您的代码开始。但我想它涉及诸如“在发送消息之前确定它是什么类型的类”之类的建议 我不介意共享代码,但这是一个通用的问题,是的,borrrden,你是对的 - 这正是我正在寻找的。下面,cynnicaljoy 为我找到了它:isKindOfClass. 【参考方案1】:

检查您正在使用的对象确实是一个 NSDictionary:

for (id obj in array)

    if ([obj isKindOfClass:[NSDictionary class]])
    
        for( NSString *aKey in [(NSDictionary *)obj allKeys] )
        
            NSLog(@"Key: %@", aKey);
        
    

【讨论】:

谢谢你,愤世嫉俗的喜悦!这正是我想要的。

以上是关于循环到未知 JSON 数据时如何在 allKeys 上捕获错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何在大小未知时使用 while..do 循环初始化 F# 列表

分段表转 JSON

如何在 ReactJS 中循环来自外部文件的 JSON 数据?

如何将 Json 数据发送到表视图数组?迅速

如何在 Vue 和 Axios 中循环访问 API 端点 JSON 对象?

在循环函数中将解析的 JSON 数据上传到 Firebase 时,内存和 CPU 使用率极高