微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法将类型“[JSON]”的值分配给类型“[MyStruct]”

如何解决无法将类型“[JSON]”的值分配给类型“[MyStruct]”

我正在学习使用 SwiftyJSON,并且正在尝试将结果值转换为 MyStruct 数组。但是,每当我尝试这样做时,它都会告诉我它们不兼容。如何将 [JSON] 转换为 [MyStruct]?

class TreatmentsManager: ObservableObject {

 @Published var treatments = [Treatment]()
 func testAlamofire() {
  AF.request("http://dermaservice.theappmaster.com/Tratamiento.ashx").response { response in
    switch response.result {
    case .success(let value):
        let json = JSON(value)
        if let treatmentArray = json["Tratamientos"].array {
            self.treatments = treatmentArray
         //[MyStruct] type /= [JSON] type
        }
    case .failure(let error):
        print(error)
    }}}}

解决方法

感谢@VishalPatel,我找到了方法:

class TreatmentsManager: ObservableObject {

  @Published var treatments = [Treatment]()
  func testAlamofire() {
    AF.request("http://dermaservice.theappmaster.com/Tratamiento.ashx").response { response in
        switch response.result {
        case .success(let value):
            do {
                let results = try JSONDecoder().decode(TreatmentList.self,from: value!)
                DispatchQueue.main.async {
                  self.treatments = results.Tratamientos
                  }
                } catch {
                print(error)
                }
        case .failure(let error):
            print(error)
        }
     }
  }
}

其中 TreatmentList 是一个包含 [Treatments] 的结构体。 所以不需要使用 SwiftyJSON

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。