【发布时间】:2021-04-28 18:15:39
【问题描述】:
我查看了本教程 https://www.hackingwithswift.com/forums/swiftui/nested-json/4018 以修复嵌套 json 问题。
我的 JSON 源已更改为
[{"title":"title","link":"...","description":"..."....
到
{"items":[{..
我原来的结构是这样的
struct Novitads: Codable, Identifiable {
public var id = UUID()
public var title: String
public var pubDate: String
public var description: String
public var link: String
public var image: URL
// public var pubDate: String
}
现在我添加了:
struct News: Codable {
var items: [Novitads]
}
这与文章中的解决方案一致。
不幸的是,我的 fetch 类现在失败了:
class FetchNovitads: ObservableObject {
@Published var Novitadss = [Novitads]()
@Published var selectedCode: String?
public lazy var selectC: Double = 0.1
let x: Double = 21.25
func refresh() {
let url = URL(string: "https://testapi-")!
print (url)
print (selectedCode)
print (selectC)
selectC = Double(selectedCode ?? "0") ?? 0.1
URLSession.shared.dataTask(with: url) { data, _, _ in
do {
if let NovitadsData = data {
let decodedData = try JSONDecoder().decode(News.self, from: NovitadsData)
DispatchQueue.main.async {
self.Novitadss = decodedData
}
} else {
print("No data")
}
} catch {
print(error)
}
}.resume()
}
}
更准确地说是self.Novitadss = decodedData
无法将类型“News”的值分配给类型“[Novitads]”当我使用以前的 json 结构(非嵌套)时没有发生这种情况,因此不需要 News 结构。
我确定我缺少一些微不足道的东西:)
【问题讨论】: