Как распарсить json в swift?

Пользователь

от hattie , в категории: Swift , 7 месяцев назад

Как распарсить json в swift?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от lamar , 7 месяцев назад

@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. Получить данные в формате 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. Распарсить данные в структуру данных с помощью JSONDecoder.
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.