2017-04-27 1 views
-1

Ich verwende SwiftyJSON, um die API-Antwort zu lesen.Wie speichern JSON-Antwort und speichern in JSON-Datei

Ich möchte die JSON-Antwort lokal im Benutzergerät speichern, indem ich JSON-Datei für offline erstellen.

Meine Funktion, die JSON zurückgibt erstellen:

Alamofire.request(HostURL) 
     .responseJSON { response in 
      guard response.result.isSuccess else { 
       debugPrint("getCourseDataFromCourseId: Error while fetching tags \(String(describing: response.result.error))") 
       failure(response.result.error! as NSError) 
       return 
      } 

      guard response.result.error == nil else { 
       debugPrint(response.result.error!) 
       return 
      } 

      guard let json = response.result.value else { 
       debugPrint("JSON Nil") 
       return 
      } 

      let swiftJson = JSON(json) 
+0

Zeigen Sie uns, was Sie versucht haben –

+0

Ich habe meinen Code hinzugefügt. –

Antwort

3

Dann jetzt einfach Sie benötigen, um Daten aus dem JSON zu bekommen und dann write(to:) Methode von Data verwenden JSON Antwort in DocumentDirectory

if let data = try? json.rawData() { 
    let fileUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] 
        .appendingPathComponent("Sample.json") // Your json file name 
    try? data.write(to: fileUrl) 
} 

zu speichern Edit: Jetzt später, wenn Sie JSON von dieser Datei lesen möchten, greifen Sie auf diese Weise.

if let data = try? Data(contentsOf: fileURL) { 
    let json = JSON(data: data) 
} 
+0

Aber wie man das aus der gespeicherten Datei wieder liest. –

+0

Ja, aber diesmal befindet sich die Datei im Gerätespeicher. Nicht im Projekt. –

+0

Ok ok hab es Danke dir –