提问人:iPhone Programmatically 提问时间:10/27/2023 最后编辑:Brian Tompsett - 汤莱恩iPhone Programmatically 更新时间:10/27/2023 访问量:48
JSON 响应中的键有时是 Int,有时是 String [duplicate]
A key in JSON response sometimes Int and sometimes comes as String [duplicate]
问:
当键的数据类型是随机的时,如何解析有时以 Int/string 的形式出现。以下是我的代码,到目前为止已经尝试过但没有工作:
do {
// let value = try String(container.decode(Int.self, forKey: .Quantity))
let value = try container.decode(Int.self, forKey: .Quantity)
Quantity = value == 0 ? nil : String(value)
} catch DecodingError.typeMismatch {
Quantity = try container.decode(String.self, forKey: .Quantity)
}
谢谢
答:
1赞
Nick
10/27/2023
#1
如果数据类型可能发生变化,您可以简单地尝试使用其他类型解析数据,如下所示:
if let intValue = try? container.decode(Int.self, forKey: .Quantity) {
// The integer value here
} else if stringValue = try? container.decode(String.self, forKey: .Quantity) {
// The string value here
}
您还可以使用 来处理解析错误,如下所示:do-catch
do {
let intValue = try container.decode(Int.self, forKey: .Quantity)
} catch DecodingError.typeMismatch {
let stringValue = try container.decode(String.self, forKey: .Quantity)
} catch {
// Handle an error here
}
评论