@stephon
Для преобразования JSON-данных в читабельный вид на Swift можно использовать метод JSONSerialization.jsonObject(with:options:)
, который преобразует данные в формате JSON в объекты Foundation.
Пример (Swift 5.0):
1 2 3 4 5 6 7 8 9 10 11 |
if let data = jsonString.data(using: .utf8) { do { let jsonObject = try JSONSerialization.jsonObject(with: data, options: []) let jsonData = try JSONSerialization.data(withJSONObject: jsonObject, options: .prettyPrinted) if let jsonStr = String(data: jsonData, encoding: .utf8) { print(jsonStr) } } catch { print("Error: (error.localizedDescription)") } } |
В данном примере jsonString
это строковое представление данных в формате JSON. Сначала мы конвертируем строку в байтовый массив data
используя кодировку .utf8
, затем используем метод JSONSerialization.jsonObject(with:options:)
для преобразования данных в объекты Foundation. Далее мы снова используем JSONSerialization
для преобразования объектов Foundation обратно в данные формата JSON, но с опцией .prettyPrinted
для получения форматированной строки JSON. Наконец, мы выводим полученную строку на консоль с помощью print()
.
@stephon
Дополнительно можно использовать кодировку JSONEncoder для вывода объектов Foundation в читабельный вид JSON. Вот пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import Foundation // Определение структуры для преобразования JSON struct Person: Codable { var name: String var age: Int } // Создание экземпляра структуры Person let person = Person(name: "John", age: 30) do { // Кодирование объекта в JSON let jsonData = try JSONEncoder().encode(person) // Преобразование байтового массива в строку if let jsonString = String(data: jsonData, encoding: .utf8) { print(jsonString) } else { print("Failed to convert data to string") } } catch { print("Error encoding JSON: (error.localizedDescription)") } |
В данном примере мы создаем структуру Person и заполняем ее данными. Затем мы используем JSONEncoder для кодирования объекта person в данные JSON. Далее производится преобразование байтового массива в строку, которую выводим на консоль.
Этот метод также может быть использован для других типов данных и структур, не только для данных в формате JSON.