gpt4 book ai didi

json - 我在 Swift 5 上解码 json 时出错

转载 作者:行者123 更新时间:2023-11-28 05:35:22 25 4
gpt4 key购买 nike

我尝试解析我的后端团队制作的 json。但是 json 有点奇怪,我不能要求后端团队更改 json。所以这是 json:

{
"nama": [
"Tigor Franky",
"Achmad Fauzi",
"Mario David Lela Muda",
"Mily Anggreini Hutasuhut",
"Arif Fahmi ST",
"Satwika Narindra Dhipa",
"Mujib Burahman",
"Aresty Puji Harjanty",
"Rio Jatmiko",
"Halasson Sitanggang"
],
"u_id": [
196,
113,
114,
149,
115,
116,
117,
118,
119,
120
],
"totalakhir": [
14.15,
1.74,
1.25,
0.75,
0,
0,
0,
0,
0,
0
]
}

所以,这对我来说是新的。我该如何解码?

到目前为止我试过这个但是有一个错误说

"typeMismatch(Swift.Dictionary, Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "nama", intValue: nil), _JSONKey(stringValue: "Index 0", intValue: 0)], debugDescription: "Expected to decode Dictionary but found a string/data instead.", underlyingError: nil))"

我试着做一个这样的结构:

struct HOF : Codable {
let nama : [Nama]
let u_id : [U_Id]
let totalakhir : [TotalAkhir]
}

struct Nama : Codable {
let namaa : String

enum CodingKeys : String, CodingKey {
case namaa = "nama"
}
}

struct U_Id : Codable {
let u_idd : Int

enum CodingKeys : String, CodingKey {
case u_idd = "u_id"
}
}

我知道我在制作结构体时错了,但我只是不知道如何制作结构体。

最佳答案

struct HOF改成这个,去掉其他数据类型,

struct HOF : Codable {
let nama : [String]
let u_id : [Int]
let totalakhir : [Decimal]
}

似乎列表与同一个用户相关,所以我建议要求您的后端更改 json 结构,如下所示,

{
"hof": [
{
"nama": "Tigor Franky",
"u_id": 196,
"totalakhir": 14.15
},
{
"nama": "Mily Anggreini Hutasuhut",
"u_id": 113,
"totalakhir": 1.74
}
]
}

所以,你的数据类型会变成这样,

struct HofUser : Codable {
let nama : String
let u_id : Int
let totalakhir : Decimal
}

struct Response : Codable {
let hof : [HofUser]
}

这将允许您只有一个列表,其中每个元素都包含与特定用户相关的所有信息。

关于json - 我在 Swift 5 上解码 json 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58851600/

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