swift - 为什么 Swift JSONDecodable 失败了?
问题描述
我尝试使用从 HTTP 请求中解码错误,JSONDecodable
但它失败了。
我创建了一个自定义类并使用Decodable
.
class CustomError: Decodable {
// Properties
var errors: [String: [String:String]]?
var message: String?
}
并使用以下行来解码返回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]]?
推荐阅读
- sql - 查找列之间的差异
- excel - 带/不带括号的 VBA 调用函数
- amazon-web-services - 设置 S3 以在浏览器中加载内容的正确方法是什么?
- java - 需要 JUnit 测试方面的帮助
- node.js - Node.js 将对象转换为字符串,将字符串转换为对象?
- javascript - 如何在 javascript 对象中分组和创建新属性?
- c++ - 书架数据结构问题
- python - 在 geany 中使用执行命令时,出现空白终端
- ios - 在 secondViewController 中有 4 个 textField 。我想用 firstviewController 集合视图单元检查这个 textField 值
- python - 当点击离开时,将空的 tk 输入框返回到以前的状态