1001 * JSON *
Предполагая, что это ваш JSON
let json = """
[
{
"firstName": "James",
"lastName": "Kirk",
"address": { "id": "efg" }
}
]
"""
Модель
Вы можете упростить определение модели
.
struct Person: Codable {
let firstName: String
let lastName: String
let address: Address
struct Address: Codable {
let id: String
}
}
Как видите, не нужно писать свой кастом init(:from)
От JSON к данным
Чтобы проверить это, мы собираемся преобразовать JSON в Data
значение.
let data = json.data(using: .utf8)!
Декодирование
И, наконец, мы можем декодировать данные
if let persons = try? JSONDecoder().decode([Person].self, from: data) {
print(persons.first?.address.id)
}
выход
Optional("efg")