как игнорировать json объект в массиве объектов с обязательным полем null - PullRequest
0 голосов
/ 17 марта 2020

У меня есть JSON, который выглядит следующим образом:

     "Ur" : [
    {
      "****" : null,
      "id" : "Pati_test142$2003-11$1584460784000",
      "******" : true,
      "ClientLocalDate" : "2020-03-17T18:17:27+02:00",
      "file_raw" : false,
      "doing" : null,
      "_id" : "******",
      "When" : "2020-03-17T17:59:44+02:00",
      "DateUTC" : "2020-03-17T16:17:30.513Z",
      "***" : false,
      "Leak" : null,
      "******" : true
    },
    {
      "FeelUrge" : null,
      "id" : "Pati_test142$2003-11$1584460957000",
      "******" : true,
      "ClientLocalDate" : "2020-03-17T18:17:27+02:00",
      "file_raw" : false,
      "doing" : null,
      "_id" : "******",
      "When" : "2020-03-17T17:59:44+02:00",
      "DateUTC" : "2020-03-17T16:17:30.901Z",
      "***" : false,
      "Leak" : null,
      "******" : true
    }]

«Когда» является обязательным полем. Как я могу игнорировать объекты в массиве JSON, который имеет нулевое значение в этом поле? Должен быть способ сделать это в декодере

1 Ответ

0 голосов
/ 17 марта 2020

Вы можете использовать следующий метод init для декодирования, когда сначала массив декодируется в локальную переменную, а затем результат фильтрации массива по значениям, отличным от nil, присваивается свойству.

init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
    let array = try container.decode([UrElement].self, forKey: .ur)
    ur = array.filter{ $0.when != nil }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...