Decoding dynamic JSON structure in swift 4

后端 未结 4 1595
情深已故
情深已故 2021-01-28 16:43

I have the following issue that I\'m not sure how to handle.

My JSON response can look like this:

{ 
  \"data\": {
      \"id\": 7,
      \"         


        
4条回答
  •  谎友^
    谎友^ (楼主)
    2021-01-28 17:14

    Using power of generic, it simple like below:

    struct ApiData: Decodable {
        var data: T?
        var error: String?
    }
    
    struct DataObject: Decodable {
        private var id: Int?
    
        var userId:Int? {
            return id
        }
    }
    

    Use

    if let obj = try? NetworkManager.shared.decoder.decode(ApiData.self, from: data) {
        //Do somthing
    } else if let array = try NetworkManager.shared.decoder.decode(ApiData<[DataObject]>.self, from: data) {
        // Do somthing
    }
    

提交回复
热议问题