Я использую протокол Swift 4 Codable
с данными JSON. Мои данные отформатированы таким образом, что на корневом уровне есть один ключ с значением объекта, содержащим необходимые мне свойства, например:
{
"user": {
"id": 1,
"username": "jdoe"
}
}
У меня есть структура User
, которая может декодировать ключ User
:
struct User: Codable {
let id: Int
let username: String
}
Так как id
и username
являются свойствами User
, а не на корневом уровне, мне нужно сделать такой тип оболочки:
struct UserWrapper: Codable {
let user: User
}
Затем я могу декодировать JSON через UserWrapper
, а также декодировать User
. Это похоже на много избыточного кода, так как мне понадобится дополнительная оболочка для каждого типа, который у меня есть. Есть ли способ избежать этого шаблона обертки или более правильного/элегантного способа обработки этой ситуации?