json - 如何处理 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 没有占上风...
提前感谢您的任何帮助。
解决方案
如果您将这些参数设为可选,它应该解析。但是我看到您忘记将参数值设为可选。尝试使其成为可选。
推荐阅读
- python - 计算连续天数python数据框
- c++ - 在 libcurl 连接池中预创建连接
- android - checkSelfPermission:在 API 22 之前如何做
- vue.js - 在共享主机上部署 Nuxt
- python - 是否可以在同一个管理页面上对同一个模型有两个多对多关系?
- sybase - 无法杀死带有“SELECT”命令的 Sybase 自己的进程(自己的进程)
- csv - CSV Parser,如何自动发现 col 名称和类型
- css - 如何使用 React Material-UI、fontAwesome 图标和 Tailwind.css 左对齐所有列表项
- javascript - Typescript Angular HTTP请求仅获得最后一个结果
- r - Shiny:全球反应式数据集