Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
570 views
in Technique[技术] by (71.8m points)

arrays - Cannot assign value of type '[JSON]' to type '[MyStruct]'

I'm learning to use SwiftyJSON and I'm trying to convert the resulted values into an array of MyStruct. However, whenever I try that, it tells me that they are not compatible. How can I convert [JSON] into [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)
    }}}}
question from:https://stackoverflow.com/questions/65903365/cannot-assign-value-of-type-json-to-type-mystruct

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Thanks to @VishalPatel, i figured out how to do it:

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)
        }
     }
  }
}

Where TreatmentList is a struct containing [Treatments]. So there is not need to use SwiftyJSON


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...