@hattie
Для того чтобы распарсить JSON в Swift, можно воспользоваться стандартными средствами языка, а именно, использовать класс JSONDecoder
.
Для начала нужно определить структуру данных, которую мы ожидаем получить в результате распарсивания JSON. Эта структура должна соответствовать структуре JSON-объекта.
Пример JSON-объекта:
1 2 3 4 5 |
{ "name": "John", "age": 30, "city": "New York" } |
Пример структуры данных на Swift, которая соответствует этому JSON-объекту:
1 2 3 4 5 |
struct Person: Codable { let name: String let age: Int let city: String } |
Здесь мы использовали протокол Codable
, чтобы указать, что структура Person
может быть закодирована и декодирована в формат JSON.
Теперь, чтобы распарсить JSON, нужно выполнить следующие шаги:
1 2 3 4 5 6 7 8 |
let urlString = "https://example.com/person.json" guard let url = URL(string: urlString) else { return } let task = URLSession.shared.dataTask(with: url) { (data, response, error) in guard let data = data else { return } // TODO: Распарсить JSON } task.resume() |
1 2 3 4 5 6 7 8 9 |
let decoder = JSONDecoder() do { let person = try decoder.decode(Person.self, from: data) print(person.name) // John print(person.age) // 30 print(person.city) // New York } catch { print(error.localizedDescription) } |
Здесь мы использовали метод decode
объекта JSONDecoder
для распаковки JSON-объекта в экземпляр структуры Person
. Если данные не соответствуют ожидаемому формату, будет выброшено исключение, которое мы можем обработать в блоке catch
.