如何存储JSON响应并保存到JSON文件中

Nic*_*ick 1 file-handling writefile readfile swifty-json swift3

我使用SwiftyJSON来读取API响应.

我想通过创建脱机的JSON文件在用户设备中本地存储JSON响应.

我的函数返回创建JSON:

 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)
Run Code Online (Sandbox Code Playgroud)

Nir*_*v D 7

那么现在你只需要从中获取数据JSON然后使用write(to:)方法Data来存储JSON响应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)
}
Run Code Online (Sandbox Code Playgroud)

编辑:现在稍后当你想JSON从这个文件中读取时,就这样访问它.

if let data = try? Data(contentsOf: fileURL) {
    let json = JSON(data: data)
}
Run Code Online (Sandbox Code Playgroud)