xcode 如何在documents目录下保存json文件?

cgh8pdjw  于 2023-05-23  发布在  其他
关注(0)|答案(1)|浏览(157)

我想把我的json文件保存在document目录下,然后从iOS的document目录中读取。我只看到了字符串或图像的教程,但如果我想保存一个json,我不知道如何。

vecaoik1

vecaoik11#

创建JSON数据的典型方法是使用JSONEncoder:

let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted

let data = try encoder.encode(yourJsonObject)

这将在变量data中提供一个Data对象。正如其他人所说的,将Data对象保存到文档中非常容易。代码如下所示(以下内容仅供参考,可能包含一些小的语法错误。)

func getDocumentsDirectory() -> URL {
    let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
    let documentsDirectory = paths[0]
    return documentsDirectory
}

func saveDataToDocuments(_ data: Data, jsonFilename: String = "myJson.JSON") {

    let jsonFileURL = getDocumentsDirectory().appendingPathComponent(jsonFilename)
    do {
        try data.write(to: jsonFileURL)
    } catch {
        print("Error = \(error.description)")
    }
}

从documents目录中的JSON文件读取对象:

  • 使用上面的getDocumentsDirectory()函数沿着URL.appendingPathComponent()构建文件的URL
  • 使用Data方法init(contentsOf:options:)从文件的内容创建Data对象。
  • 创建一个JSONDecoder并使用它将数据转换为JSON对象。(您的对象需要符合Codable协议。)

相关问题