调用此特定 API 时,其中一个变量会根据结果发生变化。
例子:
{
"map": {
"1945206": {
"installBaseNUMB": 0,
"serialNumber": "KB1",
...
}
}
}
1945206 将更改为另一个数字,我不知道如何正确解码。
我的 Codable 结构如下:
struct Map: Codable {
let the1945206: The1945206?
enum CodingKeys: String, CodingKey {
case the1945206 = "1945206"
}
}
struct The1945206: Codable {
let installBaseNUMB: Int?
let serialNumber, woStatus: String?
let workOrderNumber: Int?
let woNotes: [String]?
let woParts: [WoPart]?
}
如果 1945206 更改为另一个值,它将中断并且不会显示任何结果。如何在解码数据时使用动态变量?
最佳答案
你可以试试
struct Root : Codable {
let map: [String:The1945206]
}
let res = try? JSONDecoder().decode(Root.self,from:data)
print(res?.map.values)
{
"map": {
"1945204": {
"installBaseNUMB": 0,
"serialNumber": "KB1",
...
},
"1945205": {
"installBaseNUMB": 0,
"serialNumber": "KB1",
...
},
"1945206": {
"installBaseNUMB": 0,
"serialNumber": "KB1",
...
}
}
}
关于json - 如何使用来自 API 调用的动态变量解码嵌套的 JSON 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53713021/