Maihan Nijat
Maihan Nijat

Reputation: 9354

Why Swift JSONDecodable fails?

I try to decode the errors from HTTP request using JSONDecodable but it fails.

I have created a custom class and extended with Decodable.

class CustomError: Decodable {

    // Properties
    var errors: [String: [String:String]]?
    var message: String?
}

And using the following line to decode which returns nil:

let jsonError = try? JSONDecoder().decode(CustomError.self, from: data!)

But I get the following resulting using JSONSerialization:

let jsonError = try? JSONSerialization.jsonObject(with: data!, options: .mutableContainers)

Result:

Optional({
    errors =     {
        email =         (
            "The email has already been taken."
        );
    };
    message = "The given data was invalid.";
})

Any reason why the Decodable doesn't work?

Upvotes: 1

Views: 131

Answers (1)

Jogendar Choudhary
Jogendar Choudhary

Reputation: 3494

You need to do this because you have the array of values(email) in errors:

var errors: [String: [String]]?

Upvotes: 1

Related Questions