gpt4 book ai didi

使用 Swift 3 进行 JSON 序列化

转载 作者:搜寻专家 更新时间:2023-10-31 08:17:59 24 4
gpt4 key购买 nike

我正在尝试通过从 JSON 数据填充数组来填充表格。我正在使用下面的代码,但不断收到错误消息:

Type 'Any' has no subscript members

在下面的代码行中:

self.tableData.append(jsonResult[i]["title"]! as! String)
self.tableImages.append(jsonResult[i]["image"]! as! String)
self.tableDesc.append(jsonResult[i]["description"]! as! String)
self.tableValidity.append(jsonResult[i]["validity"]! as! String)

我的代码:

 let str3 = Int(str2!)!
let url = NSURL(string: "https://www.*****.php")!

let task = URLSession.shared.dataTask(with: url as URL) { (data, response, error) -> Void in
if let urlContent = data {
do {

let jsonResult = try JSONSerialization.jsonObject(with: urlContent, options: JSONSerialization.ReadingOptions.mutableContainers)


print(str3)

var i = 0

while i < str3 {
print(jsonResult[i]["title"]! as!String)
print(jsonResult[i]["image"]! as! String)

self.tableData.append(jsonResult[i]["title"]! as! String)
self.tableImages.append(jsonResult[i]["image"]! as! String)
self.tableDesc.append(jsonResult[i]["description"]! as! String)
self.tableValidity.append(jsonResult[i]["validity"]! as! String)

i = i + 1

}

} catch {
print("JSON serialization failed")
}

} else {
print("ERROR FOUND HERE")
}

DispatchQueue.main.async(execute: { () -> Void in

self.tableView.reloadData()

})

}

task.resume()

最佳答案

编译器不知道 jsonResult 的类型,你必须告诉它是什么,例如像这样的可选绑定(bind):

if let jsonResult = try JSONSerialization.jsonObject(with: urlContent, options: []) as? [[String:AnyObject]] {


}

在这里,我将 JSON 向下转换为字典数组。在这个 if let 中使用你的循环,它应该可以工作。

关于使用 Swift 3 进行 JSON 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39492440/

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