如何在不对每个键使用 if 的情况下解析 json 时捕获错误?
How to catch error while parsing json without using if for each key?
这是我如何解析 json:
let myObject = MyObject()
let string1 = if jsonObject["string1"] as? String{
myObject.string1 = string1
}else{
throw InValidJson
}
let string2 = if jsonObject["string2"] as? String{
myObject.string2 = string2
}else{
throw InValidJson
}
let string3 = if jsonObject["string3"] as? String{
myObject.string3 = string3
}else{
throw InValidJson
}
但是代码太多了,就像我在每个地方都使用的那样,是否可以执行以下操作:
do{
myObject.string1 = if jsonObject["string1"] as! String
myObject.string2 = if jsonObject["string2"] as! String
myObject.string3 = if jsonObject["string3"] as! String
}catch(){
error.description
}
所以我不需要检查每个键,因为我的 json 太大了。
谢谢
你可以这样做:
guard let string1 = jsonObject["string1"] as? String,
string2 = jsonObject["string2"] as? String,
string3 = jsonObject["string3"] as? String else {
//handle error
return
}
这是我如何解析 json:
let myObject = MyObject()
let string1 = if jsonObject["string1"] as? String{
myObject.string1 = string1
}else{
throw InValidJson
}
let string2 = if jsonObject["string2"] as? String{
myObject.string2 = string2
}else{
throw InValidJson
}
let string3 = if jsonObject["string3"] as? String{
myObject.string3 = string3
}else{
throw InValidJson
}
但是代码太多了,就像我在每个地方都使用的那样,是否可以执行以下操作:
do{
myObject.string1 = if jsonObject["string1"] as! String
myObject.string2 = if jsonObject["string2"] as! String
myObject.string3 = if jsonObject["string3"] as! String
}catch(){
error.description
}
所以我不需要检查每个键,因为我的 json 太大了。
谢谢
你可以这样做:
guard let string1 = jsonObject["string1"] as? String,
string2 = jsonObject["string2"] as? String,
string3 = jsonObject["string3"] as? String else {
//handle error
return
}