如何在 swift 中检查 JSON 是否为 null?

2024-04-21

我目前正在开发一个应用程序,它可以返回 json,格式如下

“location_subtype”=“某个值”; “位置类型”=强制; 月份=“2015-01”; “结果状态”= { 类别=“某个值”; 日期=“某个值”; };

如果“outcome_status”具有值,则显示类别和日期,但是如果“outcome_value”没有任何值(在大多数情况下),则显示如下

“location_subtype”=“某个值”; “位置类型”=强制; 月份=“2015-01”; “结果状态”=“”; “持久ID”=“”;

问题是我如何检查outcome_status 的值是否不为“null”?

我已尝试以下方法将类别和日期存储到标签中,但遇到错误,第一个 if 语句应检查该值是否不为空,如果不是则转到下一个 if 语句。但是它继续到下一个 if 语句,我收到以下错误

线程1:EXC_BAD_ACCESS(代码=2,地址=0x102089600)

if (dict["outcome_status"] != nil)
        {
            if ((dict["outcome_status"]as NSDictionary)["category"] != nil)
            {
                outcomeStatusLabel.text = ((dict["outcome_status"]as NSDictionary)["category"] as NSString)
                outcomeStatusLabel.font = UIFont.systemFontOfSize(14.0);
                outcomeStatusLabel.numberOfLines = 0
            }

            if ((dict["outcome_status"]as NSDictionary)["date"] != nil)
            {
                outcomeDateLabel.text = ((dict["outcome_status"]as NSDictionary)["date"] as NSString)
                outcomeDateLabel.font = UIFont.systemFontOfSize(14.0);
                outcomeDateLabel.numberOfLines = 0
            }
        }

如果我删除第一个 if 语句,它只会在“outcome_status”=“null”时崩溃,并且如果“outcome_status”中有一些值则工作得很好

如果值为 = null,我需要做什么才能在第一个 if 语句处停止?

先感谢您。


尝试这样的事情:

SWIFT代码:

if let outcome = dict["outcome_status"] as? NSDictionary {
    //Now you know that you received a dictionary(another json doc) and is not 'nil'
    //'outcome' is only valid inside this if statement

    if let category = outcome["category"] as? String {
        //Here you received string 'category'
        outcomeStatusLabel.text = category
        outcomeStatusLabel.font = UIFont.systemFontOfSize(14.0)
        outcomeStatusLabel.numberOfLines = 0
    }

    if let date = outcome["date"] as? String {
        //Here you received string 'date'
        outcomeDateLabel.text = date
        outcomeDateLabel.font = UIFont.systemFontOfSize(14.0)
        outcomeDateLabel.numberOfLines = 0
    }
}

这是使用 Json 的安全方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 swift 中检查 JSON 是否为 null? 的相关文章

  • 我可以将 JSON 字符串转换为 JsonResult 吗?

    我在数据库中存储了一些存储的 JSON 字符串 我想将其作为 JsonResult 返回给客户端 我知道 Json object 将对象转换为 JsonResult 但如果我已经将结果存储在字符串中怎么办 我可以将其转换为 JsonResu
  • 新的 iTunes 连接界面错误“您必须选择一个版本”

    当尝试将我的新应用程序提交到应用程序商店时 我注意到苹果已经更改了其网站界面 更新元数据和关键字并点击 提交审核 后 我收到错误 您必须选择一个版本 通过谷歌搜索 我没有找到答案 但是 我注意到 构建 标题旁边有一个加号按钮 您必须在其中选
  • 将 Json 数据返回给 Ajax 调用

    我在 MVC 中有一个方法 我将其发布到它 并且我需要返回一些数据以进行处理 这是我发布到的 MVC 方法 返回值是 json 数据 HttpPost public JsonResult GetCalculateAmortizationSc
  • 获取UIButton的UITableViewCell?

    我正在尝试使用UIButton 它位于自定义的UITableViewCell类称为GFHomeCell The GFHomeCell has a postID属性 我想在准备继续时发送该属性 我设置了一个在按下按钮时运行的方法 但是 在按下
  • Swift 中使用 T 型进行泛型调用

    在我的应用程序中 我想创建一个通用方法 该方法根据给定类型 T 创建一个对象数组 我创建了以下函数 func getArray
  • 从钥匙串保存和加载 |斯威夫特[重复]

    这个问题在这里已经有答案了 如何简单地将字符串存储在钥匙串中并在需要时加载 有几种SO解决方案 主要参考Git repo 但我需要最新 Swift 上最小和最简单的解决方案 当然 我不想添加 git 框架来简单地在我的项目中存储密码 有类似
  • NSNotification 与dispatch_get_main_queue

    和 关联这个问题 https stackoverflow com questions 7905192 iphone grand central dispatch main thread我想知道关于何时使用 NSNotification 在主
  • 将 NSDictionary 保存到文件有任何限制吗

    我想用下面的方法来保存NSDictionary void writeDicToFile NSDictionary dic fileName NSString fileName NSString filePath NSTemporaryDir
  • Xcode - 免费清除设备文件夹?

    我正在删除一些文件夹和文件 以便在驱动器上腾出更多空间 我知道在路径中 Library Developer CoreSimulator Devices 每个模拟器和每个版本都有文件夹 这个文件夹对我来说大约有 11GB 大小 我知道我可以删
  • 运行时警告 CLSUserDefaults 实施了两次

    在 cocoapod 源中使用 import 语法时 我在 pod 定义的类中看到了与下面类似的警告 但这是一个内部苹果类定义 CLSUserDefaults 我无法控制它 也不会进行子类化 我不知道这是否真的造成了问题 但它不应该发生 o
  • 如何为 App Store 添加关联域? - App Store Connect 的 app-ads.txt 文件

    如您所知 Admob 向发布商发送了有关 app ads txt 文件的电子邮件 Admob 在电子邮件中表示 因此 我们邀请您仔细检查您的 app ads txt 文件 如果 您已经在发布日期之前发布了一份 文件 应发布在列出的网站的根目
  • 解码Json数据数组并插入到mysql

    这个问题可能已经在这里问过 但我尝试搜索找不到它 我有如下 Json 数据 CityInfo CityCode 5599 Name DRUSKININKAI CityCode 2003 Name KAUNAS CityCode 2573 N
  • 如何绕过 CF8 编码不可打印字符中的 SerializeJSON?

    SerializeJSON 创建具有不可打印字符 即 ASCII 21 的 JSON 这是无效的 JSON 我该如何解决这个问题 删除不可打印字符的正则表达式会起作用吗 什么正则表达式会删除不可打印的字符 嗯 这个简单的解决方案是为 cff
  • Xcode 和 Waze 集成

    我正在尝试整合我的app with waze http www waze com 有人知道如何调用位智并发送坐标吗 我没有找到任何 API 或其他相关信息 void navigateToLatitude double latitude lo
  • 如何在 Cocoa with Core Data 中上传和存储文件?

    我有一个应用程序 我希望能够将文件上传到其中 我可以想象序列化数据 将其放入数组中 然后序列化数组并将其放入核心数据中 但这似乎不太正确 我还可以想象将文件复制到应用程序的支持文件中 获取这些文件的 NSURL 并存储数组或 NSURL 无
  • NSLocale 货币符号,显示金额值之前或之后

    我在用StoreKit在我的应用程序中实现应用程序内购买商店 我有一个自定义设计 这意味着价格的值应该是白色的且较大的 货币符号较小 较暗并与价格值的顶部对齐 我可以使用以下命令毫无问题地获取货币符号NSLocale in SKproduc
  • 用于一个自定义字段的 Jackson 反序列化器?

    我相信我们需要一个自定义反序列化器来对我们类中的一个字段执行特定的操作 看来一旦我这样做了 我现在就负责反序列化所有其他字段 有没有办法让杰克逊反序列化所有字段except我在这里关心的那个人 public class ThingDeser
  • 如何在 Safari 和 Native App 之间共享上下文?

    我有需要通过 Safari 设置一些上下文 上下文标记 然后从本机 iOS 应用程序读取该上下文 这样做的最佳实践是什么 到目前为止的一些想法 在 HTML 5 数据库中设置上下文 但我不确定这是否有效 因为该数据库可能只能从 Safari
  • Eddystone 信标检测问题

    以下是我使用 iPhone iOS 9 检测 Eddystone 的代码 void viewDidLoad super viewDidLoad if CLLocationManager locationServicesEnabled loc
  • Expo eas-cli iOS 构建失败

    我已经使用 React Native 创建了一个应用程序 并尝试通过 Expo 的 eas cli 创建一个 iOS 应用程序商店 跑步时eas build platform ios the Fastlane build failed wi

随机推荐

  • 专门针对右值的 std::swap

    在标准 20 2 2 utility swap 中 std swap 是为左值引用定义的 我知道这是当你想交换两件东西时的常见情况 但是 有时交换右值是正确且可取的 当临时对象包含引用时 如下所示 交换临时引用元组 https stacko
  • 如何仅定义自定义产品类型的字段 - Woo Commerce Hook

    我的代码显示在所有产品类型中 例如简单产品 可变产品 自定义类型 手段适用于所有人 但我想将其限制为仅适用于我的自定义类型 如何将自定义字段类型限制为英语课程产品类型 add filter product type selector eng
  • Tensorflow 中多维时间序列预测中的向量表示

    我有一个大型数据集 约 3000 万个数据点 具有 5 个特征 我已使用 K 均值将其减少到 200 000 个集群 数据是大约 150 000 个时间步长的时间序列 我想要训练模型的数据是每个时间步上特定簇的存在 预测模型的目的是生成一个
  • 将 Ajax JQuery 选择器保存在数组中

    我对 Ajax 非常陌生 需要帮助将 Ajax 请求中的数据存储到数组中 我在论坛上查看了答案 但无法解决我的问题 Ajax 响应正在进入 responseField val format output response 我想将 outpu
  • 等待多个 future 的回调

    最近我深入研究了一些使用 API 的工作 该API使用Unirest http库来简化从网络接收的工作 当然 由于数据是从 API 服务器调用的 因此我尝试通过使用对 API 的异步调用来提高效率 我的想法结构如下 通过返回 future
  • JDK 17:Switch 语句导致 java.lang.VerifyError:操作数堆栈上的类型错误

    刚刚在 Eclipse 2021 09 上尝试了 JDK17 结果失败并显示java lang VerifyError 这本身并没有多大帮助 我追踪到了一个 switch 语句 它被提供了一个从 a 中取出的值Map或其他泛型类型 如果我在
  • React-native cli 和带有 Bare 工作流程的 Expo 有什么区别? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我将构建一个具有多种复杂功能的非常大的应用程序 但我坚持以下几点 React native cli 和带有 Bare 工作流程的 Expo 有什
  • 在非常大的数组中查找重复项的算法

    在一次技术面试中得到了这个问题 我知道使用 在java中 HashSet解决这个问题的方法 但当面试官强行说出 这个词时 我无法理解一个非常大的数组 假设给定数组中有 1000 万个元素 我需要改变方法吗 如果不是 实现这一目标的效率应该是
  • Scrapy蜘蛛抓取页面和抓取项目之间的区别

    我正在编写一个 Scrapy CrawlSpider 它读取第一页上的 AD 列表 获取一些信息 例如列表和 AD url 的缩略图 然后向每个 AD url 发出请求以获取其详细信息 它在测试环境中工作和分页显然很好 但今天试图进行完整的
  • Java 中是否有与 Python 的 defaultdict 等效的工具?

    在 Python 中 defaultdict类提供了一种方便的方法来创建映射key gt list of values 在下面的示例中 from collections import defaultdict d defaultdict li
  • Bootstrap 模式确认表行删除

    我对网络工作非常陌生 我希望我能在这里得到一些有用的答案 我正在使用引导框架来设计一个网站 但遇到了一个小问题 我有一个表格 最后一个单元格中有一个删除按钮 我希望该按钮可以删除整行 我希望删除按钮激活引导模式以在删除之前确认表行删除 基本
  • Jenkins 未找到 SureFire 报告

    我已经在本地 jenkins 服务器中创建了一个 Maven 项目作业 项目 并添加了jenkin的TestNG插件来查看测试报告 但该作业没有显示我的 TestNg 结果 我看到以下错误 TestNG 报告处理 开始使用模式在工作区中查找
  • 使用 Backbone-Relational 实现多对多关系

    我有一个简单的应用程序 它定义了两个类 一个Person and a PersonGroup 其中存在多对多关系 一个人可以没有组 或者被分配到所有组 以及介于两者之间的任何组 backbonerelational org 上的示例建议对多
  • java中的@Documented注解

    目的是什么 Documentedjava中的注释 我看到了文档 但无法从中获得太多信息 有人可以通过一个清晰的例子指出 Documented是一个元注释 你申请 Documented定义注释时 确保使用您的注释的类在其生成的 JavaDoc
  • SGDClassifier 每次为文本分类提供不同的准确度

    我使用 SVM 分类器将文本分类为好文本和乱码 我正在使用 python 的 scikit learn 并按如下方式执行 Created on May 5 2017 import re import random import numpy
  • Pattern 和 type="email" 一起使用是否有问题?

    HTML5 电子邮件类型和模式 使用新的 HTML5 之间是否存在任何问题 冲突或其他问题 type值 例如email tel等 与pattern属性 我不是指 HTML5 浏览器兼容性 只是指这些属性的新值与pattern属性 为了清楚起
  • 我可以获得一个“有时可移植”的类库项目来加载到 Visual Studio Express 中吗?

    For 野田时间 http noda time googlecode com版本 1 1 的主要目标是构建可移植类库风格 主要是为了支持 Windows Phone 和 Windows Store 应用程序 这意味着失去一些功能 因此我们构
  • 使用未定义常量 CRYPT_SHA512

    我使用一个 php 脚本 该脚本使用 php 的 crypt 并使用 SHA512 对密码进行哈希处理 但是当我尝试检查 SHA512 是否已设置时 出现上述错误 当然我知道为什么我会收到这个错误 php 缺少一些依赖项 我只是不知道这种依
  • 符号 __module_registered 错误的重复定义

    我从 GHCi 收到一条关于 符号 module registered 的重复定义 的错误消息 如下所示 GHCi runtime linker fatal error I found a duplicate definition for
  • 如何在 swift 中检查 JSON 是否为 null?

    我目前正在开发一个应用程序 它可以返回 json 格式如下 location subtype 某个值 位置类型 强制 月份 2015 01 结果状态 类别 某个值 日期 某个值 如果 outcome status 具有值 则显示类别和日期