Обработка нулевых значений из JSON - PullRequest
0 голосов
/ 13 октября 2018

Я пытаюсь вызвать API, который дает мне ответ json, который я анализирую, используя JSON Decoder и декодируемые структуры.

Например, данные JSON:

{
 "value":[
  {
   "name":abc
  },
  {
   "name":null
  }
 ]
}

Структуры примерно такие:

struct output: Decodable {
    let value: [value]

    enum CodingKeys: String, CodingKey {
        case value = "value"
    }
}

struct value: Decodable {
    let name: String

    enum CodingKeys: String, CodingKey {
        case name = "name"
    }
}

Я не уверен, как обрабатывать этот сценарий, когда я получаю нулевые значения, потому что декодер выдает ошибку сериализации JSON.

1 Ответ

0 голосов
/ 13 октября 2018

Заменить

let name: String

на

let name: String?

{
 "value":[
  {
   "name":"abc"
  },
  {
   "name":null
  }
 ]
}

Также нет необходимости в CodingKeys, если ключи одинаковые

struct Output: Decodable { // start structs with capital letter 
    let value: [Value] 
}

struct Value: Decodable {
    let name: String?
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...