为什么 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]]?