w moim projekcie na iOS Potrzebuję zapisać cały JSON jako dane użytkownika, a następnie załadować go ponownie przy następnym uruchomieniu aplikacji. Zgniecenie go na wiele wartości, a następnie odtworzenie JSON nie jest opcją, po prostu potrzebuję jakiegoś serializowalnego sposobu zapisywania całego surowego JSON. Próbowałem przekonwertować go na String
wykonując json.rawString()
i odtworzyć go, przekazując uzyskany string
do JSON(string)
, ale to nie działa.Jak mogę zapisać i załadować JSON w NSUserDefaults przy pomocy SwiftyJSON?
Jestem zdumiony zarówno przez trudności dokonywania taka prosta sprawa i brakiem informacji o coś takiego online, więc nie mogę się doczekać, aby dowiedzieć się, jak zrobić to :)
Przykład:
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
}
Czy na pewno chcesz zapisać go na NSUserDefaults? Lepiej może zdekresualizować JSON do tablicy lub słownika, a następnie zapisać go w pliku plist w katalogu dokumentów i załadować go podczas uruchamiania aplikacji. – Abizern
Problem polega na tym, że dane mogą ulec zmianie, a mimo to jest to bardzo mały JSON, więc dla mnie jest OK. –
Czy saveJSON działa dla Ciebie? –