trong dự án iOS của tôi, tôi cần lưu toàn bộ JSON làm dữ liệu người dùng và sau đó tải lại nó khi khởi chạy ứng dụng tiếp theo. Đập nó thành nhiều giá trị và sau đó tạo lại JSON không phải là một tùy chọn, tôi chỉ cần một số cách có thể tuần tự hóa để lưu toàn bộ JSON thô. Tôi đã cố gắng chuyển đổi nó thành String
bằng cách thực hiện json.rawString()
và tạo lại bằng cách chuyển số thu được string
đến JSON(string)
, nhưng nó không hoạt động.Làm cách nào để lưu và sau đó tải JSON trong NSUserDefaults bằng SwiftyJSON?
Tôi vừa ngạc nhiên bởi những khó khăn trong việc thực hiện một điều đơn giản như vậy và do thiếu thông tin về một điều như trực tuyến này, vì vậy tôi không thể chờ đợi để khám phá làm thế nào để làm điều đó :)
Ví dụ:
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
}
Bạn có chắc chắn bạn muốn lưu nó vào NSUserDefaults? Nó có thể là tốt hơn để de-serialize JSON của bạn vào một mảng hoặc một từ điển và sau đó lưu nó vào một plist trong thư mục tài liệu của bạn và tải rằng trên khởi động ứng dụng của bạn. – Abizern
Vấn đề là dữ liệu có thể thay đổi, và dù sao nó cũng là một JSON rất nhỏ, vì vậy đối với tôi thì nó ổn. –
SaveJSON có hoạt động cho bạn không? –