Как бороться с изменением структур возврата сетевых вызовов для декодирования объектов JSON в Swift 4 - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть структура, которая заполняется возвращенным типом сетевого объекта из основанного на отдыхе API. Проблема, с которой я сталкиваюсь, состоит в том, что для определенных сетевых вызовов возвращаемый объект может не содержать все параметры объекта в структуре и класс не инициализируется:

Пример:

struct Rebate: Codable {
    let categoryID: Int?
    let customerTypes: [RebateCustomerType]?
    let financialInstitution: String
    let financialInstitutionID: Int
    let id: Int
    let identCode: String
    let lenderCode: String
    let maxCreditScore: Int
    let minCreditScore: Int
    let name: String
    let nameDisplay: String
    let number: String
    let receipientType: Int
    let revisionDate: String
    let selected: Bool?
    let startDate: String
    let stopDate: String
    let terms: [Term]?
    let transactionType: Int
    let type: Int
    let updateTS: String
    let value: RebateValue
    let valueType: Int
    let isGeneric: Bool?
    let maxTerm: [MaxTerm]?

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

Возможно ли это вообще?

Используемый нами API имеет изменяющуюся структуру классов для ряда параметров. Это приводит к неправильному анализу данных в допустимом объекте класса.

Я искал Stackoverflow без преобладания ...

Заранее благодарим за любую помощь.

1 Ответ

0 голосов
/ 02 ноября 2018

Он должен быть проанализирован, если вы сделаете эти параметры необязательными. Но я вижу, вы забыли сделать параметр значение необязательным. Попробуйте сделать его необязательным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...