gpt4 book ai didi

json - 带有保护语句的 Swift 解析字典

转载 作者:行者123 更新时间:2023-11-28 11:01:54 25 4
gpt4 key购买 nike

JSON 调用返回字典,如下所示。这两个值中的任何一个或“secondLevel”字典本身都可能丢失。

{
"theMain" : {
"secondLevel" : {
"value1" : "5.3",
"value2" : "bbb"
}
}
}

我正在使用保护语句进行解析:

guard let main = theJson["theMain"] as? [String : Any] else {
return
}
guard let second = main["secondLevel"] as? [String : Any] else {
let second = [String : Any]()
}
guard second.count > 0,
let firstValue = second["value1"] as? String else {
let firstValue = "n/a"
}
guard second.count > 0,
let secondValue = second["value2"] as? String else {
let secondValue = "n/a"
}

有更好的方法吗?

最佳答案

更好的方法是使用one guard 语句来检查键theMainsecondLevel 以及 中的项目数secondLevel 字典 > 0.

由于 secondLevel 字典仅包含字符串值,因此将其转换为 [String : String] 以避免进一步向下转换。

如果 key 丢失,最后使用 nil-coalescing 运算符分配 n/a。

guard let main = theJson["theMain"] as? [String : Any], 
let second = main["secondLevel"] as? [String : String], !second.isEmpty {
return
}

let firstValue = second["value1"] ?? "n/a"
let secondValue = second["value2"] ?? "n/a"

关于json - 带有保护语句的 Swift 解析字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40231416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com