问题描述
struct MyStruct: Codable {
var id: Int?
}
我从服务器收到的 JSON 是这样的:
{
"id": 12345
}
但现在服务器端决定将所有数字作为引用数字发送,如下所示:
{
"id": "12345"
}
使用 JSONDecoder().decode
解码此 json 时出现错误,
The data Couldn’t be read because it isn’t in the correct format
有什么办法(除了为我到现在为止创建的每个结构编写自定义的 encodable 和 Decodable 实现)来解决这个问题?例如在 JSONDecoder()
解决方法
您可以通过实现可解码协议所需的初始值设定项 init(from:) 来实现:
n
并且不要忘记解码其他属性的值。