To print a JSON object in a formatted JSON string in SwiftUI, you can use the JSONSerialization class from the Foundation framework to encode the JSON object into a Data object, and then use the String initializer to convert the Data object into a formatted JSON string. Here is an example of how to do this:
Create a file named Data + Extensions.swift
Add the following code to it:
import Foundation
extension Data {
func prettyPrint() {
do {
let jsonObject = try JSONSerialization.jsonObject(with: self, options: [])
let prettyPrintedData = try JSONSerialization.data(withJSONObject: jsonObject, options: .prettyPrinted)
// Put the guard to handle invalid json
guard let jsonString = String(data: prettyPrintedData, encoding: .utf8) else {
print("Data is not in a valid json")
return
}
print(jsonString)
} catch {
print("Error: \(error.localizedDescription)")
}
}
}
You can then call the above function from your JSON object:
jsonObject.prettyPrint()
It will print the object in formatted manner.