我想将json文件保存在文档目录中,并从iOS的文档目录中读取它。我只看过字符串或图像的教程,但如果我想保存json,我不知道如何。
创建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)")
}
}
从文档目录下的JSON文件中读取一个对象:
- 使用上面的
getDocumentsDirectory()
函数和URL.appendingPathComponent()
构建一个指向文件的URL - 使用Data方法
init(contentsOf:options:)
从文件的内容创建一个Data对象 - 创建
JSONDecoder
并使用它将数据转换为JSON对象。(你的对象需要符合可编码协议。)