nel mio progetto iOS Devo salvare un intero JSON come dati utente e ricaricarlo al prossimo avvio dell'app. Schiacciarlo in molti valori e quindi ricreare il JSON non è un'opzione, ho solo bisogno di un modo serializzabile per salvare l'intero JSON grezzo. Ho provato a convertirlo in String
facendo json.rawString()
e ricrearlo passando il string
ottenuto a JSON(string)
, ma non funziona.Come posso salvare e quindi caricare un JSON in NSUserDefaults con SwiftyJSON?
Sono entrambi stupito dalla difficoltà di fare una cosa così semplice e per la mancanza di informazioni su una cosa del genere online, quindi non vedo l'ora di scoprire come fare :)
Esempio:
public func saveJSON(j: JSON) {
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setValue(j.rawString()!, forKey: "json")
// here I save my JSON as a string
}
public func loadJSON() -> JSON {
let defaults = NSUserDefaults.standardUserDefaults()
return JSON(defaults.valueForKey("json") as! String))
// here the returned value doesn't contain a valid JSON
}
Sei sicuro di voler salvarlo NSUserDefaults? Potrebbe essere meglio deserializzare il JSON in un array o un dizionario e quindi salvarlo in un plist nella directory dei documenti e caricarlo all'avvio dell'app. – Abizern
Il problema è che i dati potrebbero cambiare, e comunque è un JSON molto piccolo, quindi per me va bene. –
saveJSON ha funzionato per te? –