为什么Swift JSONDecodable失败了?

时间:2018-05-19 20:11:31

标签: swift nsjsonserialization decodable

我尝试使用JSONDecodable解码HTTP请求中的错误,但失败了。

我创建了一个自定义类,并使用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无效的原因?

1 个答案:

答案 0 :(得分:1)

您需要执行此操作,因为您有错误的值数组(电子邮件):

var errors: [String: [String]]?