@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.