Итак, я полагаю, вы пытаетесь написать Codable
struct / class, который можно использовать для декодирования вашего JSON?
Способ обработки null
заключается в использовании необязательных типов. Из названия, я думаю, description
была бы строкой, если бы она не была нулевой, поэтому мы должны использовать String?
в качестве типа:
struct TeamMember: Codable {
let id: Int
let username: String
}
struct Team: Codable {
let id: Int
let name: String
let team_id: Int
let is_delete: Bool
let created_at: String
let members: [TeamMember]
let description: String? // <---- this line
}
Вот пример декодирования:
// I escaped the json using an online decoder I found. It's basically the same JSON in the question.
let jsonData = "{ \"id\": 17,\r\n \"name\": \"\",\r\n \"team_id\": 4,\r\n \"is_delete\": false,\r\n \"created_at\": \"2018-04-30\",\r\n \"members\": [\r\n {\r\n \"id\": 42,\r\n \"username\": \"ie\",\r\n }\r\n ],\r\n \"description\": null}".data(using: .utf8)
let decoder = JSONDecoder()
let team = try! decoder.decode(Team.self, from: jsonData!)
print(team.id)