我在下面添加的 JSON 中发现了一个关键
type
,
{
"id": "B2CAA3C8-077B-4A49-B5BA-206709630138",
"markAsDoneDate": null,
"endDate": 735025126.41189,
"type": {
"barBasedHabit": {}
},
"createdAt": 726385126.411889
}
很难定义键的任何类型。我指定的任何内容都会给我一个 typeMismatch 错误。 有没有办法解码这种密钥?
解决方案取决于您的需求。 假设您有 BarBasedHabit 结构。 您可以创建“包装器”结构,例如HabitType。
struct HabitType: Decodable {
let barBasedHabit: BarBasedHabit
}
然后在父可解码结构中定义它。
struct JsonResponse: Decodable {
let id: String
let markAsDoneDate: Date?
let endDate: TimeInterval
let type: HabitType
let createdAt: TimeInterval
}
或者您可以将字典 [String:BarBasedHabit] 定义为类型,然后为硬编码的 String “barBasedHabit”取值。
struct JsonResponse: Decodable {
let id: String
let markAsDoneDate: Date?
let endDate: TimeInterval
let type: [String : BarBasedHabit]
let createdAt: TimeInterval
}