Почему Swift JSONDecodable не работает? - PullRequest
0 голосов
/ 19 мая 2018

Я пытаюсь декодировать ошибки из 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 не работает?

1 Ответ

0 голосов
/ 19 мая 2018

Это необходимо сделать, поскольку у вас есть массив значений (адрес электронной почты) с ошибками:

var errors: [String: [String]]?
...