【发布时间】:2021-11-05 09:12:04
【问题描述】:
遇到一个难题,接收数据时不知道如何将数据分解成一个数组。
负责的变量包含不同类型的数据。
我说对了吗?我认为在初始化程序中通过可能的选项并替换所需的选项?这个数组的变量应该是什么类型?
[
{
"id": 42,
"created_at": "2021-09-08T08:55:58.000000Z",
"updated_at": "2021-09-08T08:55:58.000000Z",
"link": "u4986",
"type": "u",
"responsible": {
"id": 4986,
"type": "management_company",
"email": "X@X.com",
"phone": "+0000000000",
"comment": null,
"first_name": "Alex",
"second_name": "Hook"
}
},
{
"id": 43,
"created_at": "2021-09-08T08:55:58.000000Z",
"updated_at": "2021-09-08T08:55:58.000000Z",
"link": "r14",
"type": "r",
"responsible": {
"id": 14,
"name": "manager",
"guard_name": "api",
"created_at": "2021-06-15T19:20:20.000000Z",
"updated_at": "2021-06-15T19:20:20.000000Z"
}
}
]
如何为 MyJson 制作初始化器
struct MyJson: Codable {
let id: Int
let createdAt: String
let updatedAt: String
let link: String
let type: String
let responsible: Any
}
// MARK: - Responsible
struct User: Codable {
let id: Int
let type, email, phone, comment: String
let firstName, secondName: String
}
struct UserCategory: Codable {
let id: Int
let name, guardName, createdAt, updatedAt: String
}
【问题讨论】:
-
app.quicktype.io ?你的 JSON 没有什么复杂的。制作可编码的结构。
-
Any在Codable中不受支持。不同responsible类型的最佳解决方案是具有关联值的枚举。如果不同的类型与type值唯一相关,那很容易 -
用户?它来自哪里?