【发布时间】:2016-10-25 04:32:58
【问题描述】:
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"
}
有没有更好的方法来做到这一点?
【问题讨论】:
-
如果你想要一个每个字段的错误处理过程,那么不。如果允许有一个共享的错误处理过程(例如从一个可保释的初始化程序返回
nil),那么所有的保护语句都可以组合起来。
标签: json swift dictionary