Я обращаюсь к API и декодирую ответ json в объект User, но я пытаюсь изменить структуру JSON API. Если я возвращаю базовый объект JSON, используя этот код
let httpURL = "https://dev.test/api/user"
var request = URLRequest(url: url)
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
guard let data = data else {return}
do {
let user = try JSONDecoder().decode(User.self, from: data)
DispatchQueue.main.async {
print(user.email)
}
} catch let jsonErr {
print(jsonErr)
}
}
task.resume()
и следующий JSON
{
"id": 2,
"email": "test@example.com",
}
Это работает нормально, но я хочу изменить API, чтобы он возвращал набор вложенных объектов. Например
{
"data": {
"user": {
"id": 2,
"email": "test@example.com"
},
"notifications": [
{
"id": "123",
"notifiable_type": "App\\User"
}
]
}
}
Как я могу декодировать пользователя? Я пробовал несколько вариантов этого let user = try JSONDecoder().decode(User.self, from: data.data.user)
и let user = try JSONDecoder().decode(User.self, from: data["data"]["user"])
бт