我正在快速進行 API 呼叫,API 的回應如下所示:
[
{
"response": {
"data": {
"first": "Hello",
"second": "Hola",
"third": "Namaste"
}
}
}
]
現在為了能夠將它集成到我的應用程式中,我需要解碼來自 API 呼叫的回應,我使用的型別如下:
struct APIResponse: Codable {
let response: Response
}
struct Response: Codable {
let data: Data
}
struct Data: Codable {
let first: String
let second: String
let third: String
}
現在的問題是這種型別是錯誤的,因為 API 回應實際上是一個只有一個元素(索引 0)的陣列,這意味著如果來自 API 的回應是
[
"response": {
"data": {
"first": "Hello",
"second": "Hola",
"third": "Namaste"
}
}
]
如何在我的型別中定義 index-0 資料?
我用來進行 API 呼叫和解碼 JSON 的代碼:
var request = URLRequest(url: URL(string: "https://myurl.com")!)
let (data, _) = try await URLSession.shared.data(for: request)
let decodedResponse = try? JSONDecoder().decode(APIResponse.self, from: data)
uj5u.com熱心網友回復:
您的回應是一系列元素:
let decodedResponse = try JSONDecoder().decode([APIResponse].self, from: data)
和:
let element = decodedResponse.first
應該讓你去。
永遠不要使用try?它會混淆所有錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/476588.html
