gpt4 book ai didi

ios - 如果字典数组缺少一个键,如何编写 Codable

转载 作者:搜寻专家 更新时间:2023-11-01 06:11:28 26 4
gpt4 key购买 nike

在服务器响应中有时会丢失“tags”键。我们必须如何为此响应编写可编码结构。

[
{
"product_id": 10
"product_name": "Bulb"
"tags": ["x", "y", "z"]
},
{
"product_id": 11
"product_name": "Wire"
}
]

这样解码

do {

// decoding...
let product_model = try JSONDecoder().decode([ProductItem].self, from: data)

} catch let error {

print("Product list error(decoder): \(error.localizedDescription)")
}

//产品结构

struct ProductItem: Codable {

// variables
let product_id: String?
let product_name: String?
let tags: [String]?

// alternative keys...
private enum CodingKeys: String, CodingKey {

case product_id
case product_name
case tags // what i have to do here
}
}

最佳答案

看来您的 JSON 不正确。它看起来应该类似于这个:

[
{
"product_id": 10,
"product_name": "Bulb",
"tags": ["x", "y", "z"]
},
{
"product_id": 11,
"product_name": "Wire"
}
]

为此,您的结构应该类似于:

struct ProductItem: Codable {

// variables
let product_id: Int
let product_name: String
let tags: [String]?
}

如果结构中的变量与 JSON 对象中的键同名,则不必提供 CodingKeys。另外,请记住 "product_id": 10, 是一个数字,因此您应该使用 Int 而不是 String

关于ios - 如果字典数组缺少一个键,如何编写 Codable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56001135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com