首页 > 解决方案 > 为什么 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不起作用?

标签: swiftnsjsonserializationdecodable

解决方案


您需要这样做,因为您有错误的值数组(电子邮件):

var errors: [String: [String]]?

推荐阅读