SwiftyJSON object back to string
26,562
Solution 1
From the README of SwiftyJSON on GitHub:
//convert the JSON to a raw String
if let string = libraryObject.rawString() {
//Do something you want
print(string)
}
Solution 2
//convert the JSON to a raw String
if let strJson = jsonObject.rawString() {
// 'strJson' contains string version of 'jsonObject'
}
//convert the String back to JSON (used this way when used with Alamofire to prevent errors like Task .<1> HTTP load failed (error code: -1009 [1:50])
if let data = strJson.data(using: .utf8) {
if let jsonObject = try? JSON(data: data) {
// 'jsonObject' contains Json version of 'strJson'
}
}
Author by
Derek
Updated on October 07, 2020Comments
-
Derek over 3 years
I'm using the SwiftyJSON library to parse JSON into swift objects. I can create the JSON object and read and write to it
// Create json object to represent library var libraryObject = JSON(["name":"mylibrary","tasks":["Task1","Task2","Task3"]]) // Get println(libraryObject["name"]) println(libraryObject["tasks"][0]) // Set println("Setting first task to 'New Task'") libraryObject["tasks"][0] = "New Task" // Get println(libraryObject["tasks"][0]) // Convert object to JSON and print println(libraryObject)
All of this works as expected. I just want to convert the libraryObject back to a string in JSON format!
The println(libraryObject) command outputs what I want to the console but I can't find a way to get it as a string.
libraryObject.Stringvalue and libraryObject.String both return empty values but when I try eg println("content: "+libraryObject) I get an error trying to append a String to a JSON
-
Derek almost 9 yearsI swear I did but just had a total blindspot! Thanks a lot
-
Andy almost 7 yearsbe sure to use .rawString() and not .rawString (without brackets). Spent ages trying to work out why I wasn't getting the same result.