в моем проекте iOS Мне нужно сохранить весь JSON в качестве пользовательских данных, а затем перезагрузить его при следующем запуске приложения. Сокрушая его во множество значений, а затем воссоздавая JSON, это не вариант, мне просто нужен некоторый сериализуемый способ сэкономить весь необработанный JSON. Я попытался преобразовать его в String
, выполнив json.rawString()
и заново создав его, передав полученный string
в JSON(string)
, но он не работает.Как сохранить и загрузить JSON в NSUserDefaults с помощью SwiftyJSON?
Я так поражен сложностью создания такой простой вещи, и отсутствие информаций о вещах, как этот онлайн, так что я не могу ждать, чтобы узнать, как сделать это :)
Примера:
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
}
Вы уверены, что вы хотите сохранить его в NSUserDefaults? Возможно, было бы лучше де-сериализовать ваш JSON в массив или словарь, а затем сохранить его в plist в каталоге документов и загрузить его при запуске приложения. – Abizern
Проблема в том, что данные могут измениться, и в любом случае это очень маленький JSON, поэтому для меня все в порядке. –
Сделал ли saveJSON для вас? –