gpt4 book ai didi

json - 无法通过可编码的swift从json中获取数据

转载 作者:行者123 更新时间:2023-11-28 13:55:08 24 4
gpt4 key购买 nike

这是json代码:

{
"status":"success",
"data":
[
{"id":"3",
"city_name":"Delhi",
"city_image":"delhi.png"},
{"id":"4",
"city_name":"Mumbai",
"city_image":"tickmark.png"}
]
}

我的 Swift 代码:

struct city: Decodable{
let status : String
let id: String
let data : String
let city_name: String
let city_image: String
}

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

let jsonUrl = "http://parking.onlinekiduniya.org/api/cityList.php"
let url = URL(string: jsonUrl)
URLSession.shared.dataTask(with: url!) {(data, response, error) in
do {
let cities = try JSONDecoder().decode([city].self, from: data!)
for city in cities {
print(city.id)
}
}
catch {
print("we got error")
}
}.resume()
}
}

最佳答案

替换

let cities = try JSONDecoder().decode([city].self, from: data!)

let root = try JSONDecoder().decode(Root.self, from: data!)
let cities = root.data
cities.forEach {
print($0.id)
}

struct Root: Codable {
let status: String
let data: [City]
}

struct City: Codable {
let id, cityName, cityImage: String // you can use snake case also

enum CodingKeys: String, CodingKey {
case id
case cityName = "city_name"
case cityImage = "city_image"
}
}

你的根是字典而不是数组

关于json - 无法通过可编码的swift从json中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53977577/

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