gpt4 book ai didi

ios - fatal error : Dictionary 不符合 Decodable 因为 Any 不符合 Decodable

转载 作者:搜寻专家 更新时间:2023-10-30 22:09:17 26 4
gpt4 key购买 nike

我正在尝试使用 swift 4 来解析本地 json 文件:

{
"success": true,
"lastId": null,
"hasMore": false,
"foundEndpoint": "https://endpoint",
"error": null
}

这是我正在使用的函数:

    func loadLocalJSON() {

if let path = Bundle.main.path(forResource: "localJSON", ofType: "json") {
let url = URL(fileURLWithPath: path)

do {
let data = try Data(contentsOf: url)
let colors = try JSONDecoder().decode([String: Any].self, from: data)
print(colors)
}
catch { print("Local JSON not loaded")}
}
}
}

但我一直收到错误:

Fatal error: Dictionary does not conform to Decodable because Any does not conform to Decodable.

我尝试在这个 stackoverflow 页面上使用“AnyDecodable”方法:How to decode a property with type of JSON dictionary in Swift 4 decodable protocol但它会跳转到“catch”语句:catch { print("Local JSON not loaded") 使用时。有谁知道如何在 Swift 4 中解析此 JSON 数据?

最佳答案

也许您误解了 Codable 的工作原理。它基于具体类型。不支持任何

在您的情况下,您可能会创建一个像这样的结构

struct Something: Decodable {
let success : Bool
let lastId : Int?
let hasMore: Bool
let foundEndpoint: URL
let error: String?
}

并解码JSON

func loadLocalJSON() {
let url = Bundle.main.url(forResource: "localJSON", withExtension: "json")!
let data = try! Data(contentsOf: url)
let colors = try! JSONDecoder().decode(Something.self, from: data)
print(colors)
}

任何崩溃都会揭示设计错误。在主包中的文件中使用 null 的意义是另一个问题。

关于ios - fatal error : Dictionary<String, Any> 不符合 Decodable 因为 Any 不符合 Decodable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49018384/

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