SwiftUI:如何使用 0 索引数组键为 JSON 添加类型
SwiftUI: how to add type for JSON with 0 index array key
我正在 swift 中进行 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)
您的回复是一组元素:
let decodedResponse = try JSONDecoder().decode([APIResponse].self, from: data)
和:
let element = decodedResponse.first
应该让你继续。
永远不要使用 try?
它会混淆所有错误。
我正在 swift 中进行 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)
您的回复是一组元素:
let decodedResponse = try JSONDecoder().decode([APIResponse].self, from: data)
和:
let element = decodedResponse.first
应该让你继续。
永远不要使用 try?
它会混淆所有错误。