gpt4 book ai didi

json - 导入 Firebase 导致 JSON 获取不明确

转载 作者:行者123 更新时间:2023-11-30 10:50:40 26 4
gpt4 key购买 nike

我一直在我的 View Controller 中获取 JSON,并且我需要一个函数来将同一个 VC 中的数据添加到 firebase,因此导入了 Firebase(Pods firebase core、auth 和 firestore),现在它在获取 JSON 时出现错误“下标”的使用不明确

func getDetails(link: URL!) {
var plot : String = " "

let task = URLSession.shared.dataTask(with: link!) { (data, response, error) in
if error != nil
{
print("error")
}
else
{
if let content = data
{
do
{
//JSON results
let myJson = try JSONSerialization.jsonObject(with: content, options: JSONSerialization.ReadingOptions.mutableLeaves) as AnyObject


//myJson ~~~ ["Plot"] Ambiguous use of 'subscript'
plot = myJson["Plot"] as! String

}


catch
{
print("error in JSONSerialization")
}
}
}
}
task.resume()

DispatchQueue.main.asyncAfter(deadline: .now() + 0.5, execute: {
self.plot.text = plot
})

}

我希望保持选择 JSON 的“Plot”值并使 firebase 运行的能力

最佳答案

您的问题是将结果从 JSONSerialization 转换为 AnyObject。如果您希望能够使用下标,则应在您的情况下将结果向下转换为字典类型,例如 [String:Any]

if let myJson = try JSONSerialization.jsonObject(with: content, options: .mutableLeaves) as? [String:Any] {
// plot = myJson["Plot"] as? String ?? "Default value"
}
<小时/>

无论如何,应该了解一些关于Codable的知识并使用它而不是JSONSerialization。只需创建符合 Decodable 协议(protocol)的类/结构,然后使用 JSONDecoder 解码 Data 对象即可。

关于json - 导入 Firebase 导致 JSON 获取不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54633612/

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