为什么 Swift JSONDecodable 失败?
Why Swift JSONDecodable fails?
我尝试使用 JSONDecodable
解码来自 HTTP 请求的错误,但失败了。
我创建了一个自定义 class 并扩展了 Decodable
。
class CustomError: Decodable {
// Properties
var errors: [String: [String:String]]?
var message: String?
}
并使用以下行解码 returns nil
:
let jsonError = try? JSONDecoder().decode(CustomError.self, from: data!)
但我使用 JSONSerialization
得到以下结果:
let jsonError = try? JSONSerialization.jsonObject(with: data!, options: .mutableContainers)
结果:
Optional({
errors = {
email = (
"The email has already been taken."
);
};
message = "The given data was invalid.";
})
Decodable
不起作用的任何原因?
您需要这样做,因为您的值数组(电子邮件)有误:
var errors: [String: [String]]?
我尝试使用 JSONDecodable
解码来自 HTTP 请求的错误,但失败了。
我创建了一个自定义 class 并扩展了 Decodable
。
class CustomError: Decodable {
// Properties
var errors: [String: [String:String]]?
var message: String?
}
并使用以下行解码 returns nil
:
let jsonError = try? JSONDecoder().decode(CustomError.self, from: data!)
但我使用 JSONSerialization
得到以下结果:
let jsonError = try? JSONSerialization.jsonObject(with: data!, options: .mutableContainers)
结果:
Optional({
errors = {
email = (
"The email has already been taken."
);
};
message = "The given data was invalid.";
})
Decodable
不起作用的任何原因?
您需要这样做,因为您的值数组(电子邮件)有误:
var errors: [String: [String]]?