我是 Swift 初學者,我正在嘗試從網路請求中解碼 JSON 物件。我正在嘗試將產品放入一個陣列中,以便稍后將它們用于 UI。目前我堅持解碼 JSON 并將它們放在一個陣列中。
這是我嘗試使用的 JSON 的簡化版本(但可以在 url 中找到完整的 JSON):
{
"items": [
{
"product": {
"name": "Product name"
}
}
]
}
到目前為止,這是 Swift 代碼。
// Models
struct Root: Codable {
let items: [Item]
}
struct Item: Codable {
let product: Product
}
struct Product: Codable {
let name: String
}
//Product array
var productArray: [Product] = []
// URL and data fetching
let urlString: String = "https://api.jsonbin.io/b/60832bec4465377a6bc6b6e6"
func fetchData() {
guard let url = URL(string: urlString) else {
return
}
let task = URLSession.shared.dataTask(with: url) { data, _, error in
guard let data = data, error == nil else {
return
}
do {
let result = try JSONDecoder().decode(Root.self, from: data)
DispatchQueue.main.async {
productArray = result
}
} catch {
print(error)
}
}
task.resume()
}
fetchData()
如果有人知道我如何解決這個問題,我非常感謝您的幫助。目前被困在這幾個小時,我似乎無法弄清楚。提前致謝!
uj5u.com熱心網友回復:
只是map在items陣列
DispatchQueue.main.async {
productArray = result.items.map(\.product)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/322853.html
上一篇:更新字典值而不覆寫
下一篇:遞回函式嵌套字典python
