Can someone tell what is wrong with the code? I'm trying to parse the JSON from the server into variables to store the values. When i'm running the code, i'm not getting any errors. When i'm doing the print(users) after decoding the data, it's not returning anything. Can someone help me with this issue?
This is the code i'm using to retrieve the data from the server.
guard let url = URL(string: "my-url") else { return }
let session = URLSession.shared
let task = session.dataTask(with: url) { (data, _, _) in
guard let data = data else { return }
do {
let user = try JSONDecoder().decode(User.self, from: data)
print(user)
} catch {}
}
task.resume()
JSON result from the server
{
"UserId": "55844ef7-3f05-4560-8b37-216df422ffb8",
"ContactsDto": [
{
"Id": null,
"UserId": null,
"FriendUserId": "e61d09f8-9aec-4035-b0be-c36abea2d82b",
"FirstName": null,
"LastName": null,
"Email": "",
"PhonePrefix": null,
"Phone": "54943597",
"InviteStatus": "pending",
"UserStatus": null,
"ErrorCode": 0,
"ErrorMessage": null
},
{
"Id": null,
"UserId": null,
"FriendUserId": "b2e0d6d7-d97c-475e-a2ab-71cb8091a7a0",
"FirstName": null,
"LastName": null,
"Email": "",
"PhonePrefix": null,
"Phone": "207-7575",
"InviteStatus": "pending",
"UserStatus": null,
"ErrorCode": 0,
"ErrorMessage": null
},
{
"Id": null,
"UserId": null,
"FriendUserId": "8f8d6061-3a69-4641-ac40-329a824ff4e1",
"FirstName": null,
"LastName": null,
"Email": "",
"PhonePrefix": null,
"Phone": "58511968",
"InviteStatus": "pending",
"UserStatus": null,
"ErrorCode": 0,
"ErrorMessage": null
},
{
"Id": null,
"UserId": null,
"FriendUserId": "40c1e461-eb98-4e18-9363-13cfa460fe7e",
"FirstName": null,
"LastName": null,
"Email": "",
"PhonePrefix": null,
"Phone": "57864550",
"InviteStatus": "accepted",
"UserStatus": null,
"ErrorCode": 0,
"ErrorMessage": null
}
],
"ErrorCode": 0,
"ErrorMessage": null
}
My Structure
struct User: Decodable {
let UserId: String?
let ContactsDto: [ContactsDto]?
let ErrorCode: Int?
let ErrorMessage: String?
}
struct ContactsDto : Decodable {
let Id : String?
let UserId : String?
let FriendUserId : String?
let FirstName : String?
let LastName : String?
let Email : String?
let PhonePrefix : String?
let Phone : String?
let InviteStatus : String?
let UserStatus : String?
let ErrorCode : String?
let ErrorMessage : String?
}