我尝试使用 Codable Protocol 在 Swift 4.2 上反序列化一些 JSON。 我的 Json:
{
"status":1,
"data":[
[
{
"id":"4klJeiCKTs",
"body":"first",
"da":"1442236233",
"dm":"1442236233"
},
{
...
}
]
]
}
我的结构和代码:
struct GetEntriesRequest: Decodable{
var status: Int
var data: [NestedArrayGetEntries]
}
struct NestedArrayGetEntries: Decodable{
var elements: [GetEntriesDataFromSession]
}
struct GetEntriesDataFromSession: Decodable{
var id: String
var body: String
var da: String
var dm: String
}
...
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase
do {
let root = try decoder.decode(GetEntriesRequest.self, from: data)
dataSession = root
} catch { print(error) }
另外,我尝试了这个结构
var data: [[GetEntriesDataFromSession]]
但没有任何成功。
最佳答案
data
键是一个嵌套数组,并且没有 elements
键
var data: [NestedArrayGetEntries]
与
var data: [[NestedArrayGetEntries]]
<小时/>
struct GetEntriesRequest: Codable {
let status: Int
let data: [[NestedArrayGetEntries]]
}
struct NestedArrayGetEntries: Codable {
let id, body, da, dm: String
}
<小时/>
这里你不需要蛇包
do {
let root = try JSONDecoder().decode(GetEntriesRequest.self, from: data)
dataSession = root
} catch {
print(error)
}
关于json - 反序列化 double 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56154885/