“无法处理从这里抛出的错误”-Swift中的JSON编码器和解码器

时间:2018-08-22 04:07:51

标签: ios json swift swift-playground

我有两个处理读写JSON数据的功能。

func websiteToDisk() {

    print("Getting information from website")

    let documentDirectoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!

    let jsonFile = documentDirectoryURL.appendingPathComponent("jsonPractice").appendingPathExtension("json")

    let toWrite: [String] = ["A", "B", "C"]



    let jsonEncoder = JSONEncoder()

    let jsonData = try jsonEncoder.encode(toWrite)

    try jsonData.write(to: jsonFile)

}


func diskToLocalVar() {

    print("Getting information from disk and putting it in a local variable")

    let documentDirectoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!

    let jsonFile = documentDirectoryURL.appendingPathComponent("jsonPractice").appendingPathExtension("json")



    let jsonDecoder = JSONDecoder()

    let savedJSONData = try Data(contentsOf: jsonFile)

    let jsonDecoded = try jsonDecoder.decode([String].self, from: savedJSONData)

}

websiteToDisk应该将一个简单的数组写入json文件,而diskToLocalVar应该读取该数据。由于某些原因,每个函数的最后两行都有一个“从此处引发的错误未处理”错误。我不确定为什么会这样,因为我很确定自己没有违反任何JSONEncoder.encode约束。我知道我要编码的是可编码的,因为它只是一个字符串数组。

0 个答案:

没有答案