我想將此 JSON 解碼為看起來正常的結構或類,但我面臨一個問題,我需要為財產年齡創建一個全新的結構,我怎樣才能避免這種情況并將年齡直接保存到類人?
另外,最好將 Int 轉換為 String
{
"name": "John",
"age": {
"age_years": 29
}
}
struct Person: Decodable {
var name: String
var age: Age
}
struct Age: Decodable {
var age_years: Int
}
我想擺脫 Age 并將其保存為:
struct Person: Decodable {
var name: String
var age: String
}
uj5u.com熱心網友回復:
你可以試試
struct Person: Decodable {
let name,age: String
private enum CodingKeys : String, CodingKey {
case name, age
}
init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
name = try container.decode(String.self, forKey: .name)
do {
let years = try container.decode([String:Int].self, forKey: .age)
age = "\(years["age_years"] ?? 0)"
}
catch {
let years = try container.decode([String:String].self, forKey: .age)
age = years["age_years"] ?? "0"
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/427059.html
