【发布时间】:2019-11-14 07:37:43
【问题描述】:
我尝试解析我的后端团队制作的 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: "应解码字典,但找到了一个字符串/数据。",基础错误: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"
}
}
我知道我在制作结构时错了,但我只是不知道如何制作结构。
【问题讨论】:
-
“嵌套结构”是错误的。将
let nama : [Nama]替换为let nama : [String],struct HOF的其他属性类似。 -
告诉你的后端团队,发送字典比发送多个数组更有效,即使发送的数据量有点高。
-
将此json响应复制到app.quicktype.io,它将自动创建结构。试一次