Представьте, что у вас ниже json ответ от сервера после вызова API:
{
"settings": {
"isUserActive": false,
"isUserAdmin": false,
"rollNumber": 10,
"userId": 2,
"userName": "John"
},
"status": 200,
"message": "Success"
}
Теперь, как вы получите доступ к значению, если вы не используете модель данных. Это будет похоже на
let name = response["settings"]["userName"]
(Предполагается, что вы преобразовали JSON в словарь)
1) Что если вам нужно использовать имя пользователя в нескольких местах, то вам придется повторить то же самое.
2) Приведенный выше ответ json прост, поэтому будет легко получить определенное значение, но представьте себе json, где есть вложенные объекты, попытка получить значение вручную может быть болезненной.
3) Если вы работаете в команде, есть вероятность, что некоторые разработчики могут ошибиться в написании ключа, а отладка может занять несколько часов.
Используя модель данных, компилятор выдаст ошибку, если свойство будет написано с ошибкой во избежание ошибок.
4) Вам придется вводить каждый раз при получении данных из словаря.
При использовании моделей данных необходимо выполнять типирование только один раз, т.е. при разборе JSON.
Всей этой боли можно избежать, просто используя модель данных, вам нужно только один раз проанализировать json, и вы можете просто использовать ключ как свойство для доступа к значению.
Например, посмотрите настройки json, после того, как вы проанализируете его для модели данных, его можно использовать так:
let data = dataModel(json: jsonResponse)
data.settings.userName // John
data.settings.rollNumber //10
data.status //200
Это хороший инструмент для преобразования JSON в модели данных Ссылка
Надеюсь, это поможет.