ios - 如何在不对每个键使用 if 的情况下解析 json 时捕获错误?

标签 ios swift ios8 ios9

这是我如何解析 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
}

关于ios - 如何在不对每个键使用 if 的情况下解析 json 时捕获错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35479012/

相关文章:

ios - 具有多个 .xcconfig 文件和 cocoapods 的复杂 Xcode 项目

ios - 自定义标注手势识别

ios - 如何在swift 4的分页模式下使用 Collection View 中的垂直居中单元格?

ios - 从数组中动态添加 UIImageView

ios - 测试飞行应用程序与 libAVFAudio.dylib : AVAE_RaiseException(NSString*, 崩溃 ...) + 60

objective-c - 如何注释 Objective-C API 以便在 Swift 中使用(例如返回类型)

ios - Swift:如何使viewWillTransition仅影响横向的iPhone

ios - MapKit iOS8 中的内存泄漏

uitableview - iOS 8 单元格大小调整

ios - 如何获取 iOS 8 中 UICollectionViewCells 的自动布局大小? (systemLayoutSizeFittingSize 在 iOS 8 中返回高度为零的大小)