J'utilise la bibliothèque SwiftyJSON pour analyser JSON en Swift. Je peux créer l'objet JSON et le lire et y écrire
// 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)
Tout cela fonctionne comme prévu. Je veux juste reconvertir le libraryObject en une chaîne au format JSON!
La commande println (libraryObject) renvoie ce que je veux à la console mais je ne trouve pas de moyen de l'obtenir sous forme de chaîne.
libraryObject.Stringvalue et libraryObject.String renvoient tous les deux des valeurs vides, mais lorsque j'essaie, par exemple, println ("content:" + libraryObject) j'obtiens une erreur en essayant d'ajouter une chaîne à un JSON
Depuis le README de SwiftyJSON sur GitHub :
//convert the JSON to a raw String
if let string = libraryObject.rawString() {
//Do something you want
print(string)
}
Version Swift 4.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'
}
}