0

I have a Json in which there is the possibility that a few keys can be missing

Full JSON looks like this

    {
  "data": "some text",
  "id": "3213",
  "title": "title",
  "description": "description",
  "customObj1": [{
      "id": "2423",
      "count": 35
      ........
      .......
    }]
  "customObj2": [{
      "number": "2423",
      "name": "john"
      ........
      .......
    }]
  "customObj3": [{
      "like": "2423",
      "Other": 9
      ........
      .......
    }]
}

the custom object (1,2,3) may or may not be available in JSON, How can I write the model in swift using codable and struct?

here is how the model (dummy) look like

// MARK: - Response
struct Response: Codable {
    let data, id, title, ResponseDescription: String
    let customObj1: [CustomObj1]
    let customObj2: [CustomObj2]
    let customObj3: [CustomObj3]

    enum CodingKeys: String, CodingKey {
        case data, id, title
        case ResponseDescription = "description"
        case customObj1, customObj2, customObj3
    }
}

// MARK: - CustomObj1
struct CustomObj1: Codable {
    let id: String
    let count: Int
}

// MARK: - CustomObj2
struct CustomObj2: Codable {
    let number, name: String
}

// MARK: - CustomObj3
struct CustomObj3: Codable {
    let like: String
    let other: Int

    enum CodingKeys: String, CodingKey {
        case like
        case other = "Other"
    }
}

I have tried using decode init but need help

init(from decoder: Decoder) throws {
        let values = try decoder.container(keyedBy: CodingKeys.self)
        if (values.contains(. customObj1)) {
            // here I need help }
            else {
                self.category = nil
            }
        }
    }
Vineet Rai
  • 80
  • 7

0 Answers0