gpt4 book ai didi

json - 为什么我下载的 JSON 文件不再是 JSON?

转载 作者:行者123 更新时间:2023-11-28 11:41:21 29 4
gpt4 key购买 nike

我正在下载一个 JSON 文件,我已将其检查为带有“https://jsonlint.com”的有效 JSON 到文档目录。然后我打开文件并再次检查,结果显示为无效的 JSON。这怎么可能????这是代码:

let destination: DownloadRequest.DownloadFileDestination = { _, _ in
var documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]

documentsURL.appendPathComponent("analysis."+pathExtension)
return (documentsURL, [.removePreviousFile])
}

Alamofire.download("http://www...../analysis.json", to: destination).response { response in
if response.destinationURL != nil {
print(response.destinationURL!)

let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let documentsDirectory = paths[0]

let path = documentsDirectory + "/analysis.json"

if JSONSerialization.isValidJSONObject(path) {
print("Valid Json")
} else {
print("InValid Json") ///// I am getting here "INValid Json" - how is that possible????
}
}
}

最佳答案

因为 path 是一个字符串,指示文件在您系统上的位置,类似于 file://path/to/analysis.json。这显然不是有效的 JSON。

您要检查的是该文件的内容 是否为有效 JSON。试试这个:

Alamofire.download("http://www...../analysis.json", to: destination).response { response in
guard detinationURL = response.destinationURL else { return }
guard data = Data(contentsOf: destinationURL) else { return }

do {
let jsonObject = try JSONSerialization.jsonObject(with: data, options: [])
} catch {
print("InValid Json")
}
}

旁注:为什么不使用 Decodable

关于json - 为什么我下载的 JSON 文件不再是 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53576005/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com