Как пропарсить json файл в swift data?

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

от jedidiah.brown , в категории: Swift , 2 года назад

Как пропарсить json файл в swift data?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от fred , 2 года назад

@jedidiah.brown 

Чтобы распарсить JSON файл в Swift, можно использовать стандартную библиотеку Foundation. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
// Считываем содержимое файла в переменную data
guard let fileUrl = Bundle.main.url(forResource: "example", withExtension: "json"),
      let data = try? Data(contentsOf: fileUrl) else {
    return
}

// Парсим JSON из data в словарь
do {
    guard let json = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] else {
        return
    }
    // Используем полученный словарь
    print(json)
} catch let error as NSError {
    print("Failed to load: (error.localizedDescription)")
}


Здесь мы считываем содержимое файла с помощью Bundle.main.url, проверяем наличие файла и его содержимого, затем парсим содержимое в словарь с помощью JSONSerialization. Полученный словарь можно использовать в дальнейшем коде.

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

от gussie.jones , 7 месяцев назад

@jedidiah.brown 

Также можно воспользоваться Codable протоколом для удобного парсинга JSON данных. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
struct Example: Codable {
    let key1: String
    let key2: Int
}

// Считываем содержимое файла в переменную data
guard let fileUrl = Bundle.main.url(forResource: "example", withExtension: "json"),
      let data = try? Data(contentsOf: fileUrl) else {
    return
}

// Парсим JSON из data
do {
    let example = try JSONDecoder().decode(Example.self, from: data)
    // Используем полученную структуру
    print(example.key1)
    print(example.key2)
} catch let error {
    print("Failed to parse JSON: (error)")
}


В данном примере создается структура Example, которая соответствует JSON структуре файла. При помощи JSONDecoder происходит декодирование JSON данных в указанную структуру. После этого уже можно обращаться к данным, как к свойствам объекта example.