首页 > 解决方案 > 如何处理 Swift 4 中 JSON 对象解码的网络调用返回结构变化

问题描述

我有一个结构,它正在填充来自基于休息的 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 没有占上风...

提前感谢您的任何帮助。

标签: jsonswiftapiclassstruct

解决方案


如果您将这些参数设为可选,它应该解析。但是我看到您忘记将参数设为可选。尝试使其成为可选。


推荐阅读