json - 尝试从 json 文件解码数据时出错
问题描述
使用我的 API 调用获取数据时,Json 数据返回编码键错误。我获取了 json 数据中的数组值,但是对于每个值,即使我从列表中删除了数组,我也会收到每个数组的编码键错误。
keyNotFound(CodingKeys(stringValue: "strMeal", intValue: nil),
Swift.DecodingError.Context(codingPath: [], debugDescription: "No value
associated with key CodingKeys(stringValue: \"strMeal\", intValue:
nil) (\"strMeal\").", underlyingError: nil))
Json 文件不返回任何编码密钥,因为我已使用https://app.quicktype.io/解析数据 这是我使用的 API 端点https://www.themealdb.com/api/json/ v1/1/filter.php?c=牛肉
谁能告诉我我的 fetchJson 函数或我创建的数组做错了什么?
import UIKit
@MainActor
class HomeViewController: UIViewController, ObservableObject {
@IBOutlet weak var TableView: UITableView!
var meals = [Meal]()
override func viewDidLoad() {
super.viewDidLoad()
fetchJSON {
print("APICompleted")
}
}
func fetchJSON(completed: @escaping () -> ()) {
let url = URL(string:
"https://www.themealdb.com/api/json/v1/1/filter.php?c=Beef")!
URLSession.shared.dataTask(with: url) { data, response, error in
if error == nil {
do {
let meals = try JSONDecoder().decode(Meal.self, from: data!)
DispatchQueue.main.async {
completed()
}
}catch {
print(error)
}
}
}.resume()
}
}
List of arrays
import Foundation
struct MealDetailResponse: Decodable {
let meals: [Meal]
}
struct Meal: Decodable {
let strMeal: String
let strMealThumb: String
let idMeal: String
}
解决方案
推荐阅读
- python - 为什么我不能在 python 多处理中关闭池之前使用 join()
- python - 使用 python 重新采样 olhc 数据帧时出错
- c++ - 在 C++ 中的另一个函数中使用函数的参数?
- reactjs - 如何在 react-countdown 中调用 onStart 函数?
- ubuntu - 类型错误:gulp.run 不是函数
- mysql - Mysql将所有表复制到具有不同名称的同一个数据库中,例如(tablename_log)
- android - 运动布局不为不是其直接子级的视图设置动画
- sql - 在 SQL Server 中添加多个筛选条件
- c# - 使用 Excel 数据阅读器
- cassandra - Cassandra:根据集合中的值进行查询时出错