如何在不对每个键使用 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
}