嵌套陣列採取以下JSON:解碼迅速4
let rawJson =
"""
[
{
"id": 1,
"name":"John Doe"
},
{
"id": 2,
"name":"Luke Smith"
},
]
"""
和User
模型:
struct User: Decodable {
var id: Int
var name: String
}
這是很簡單的解碼,像這樣:
let data = rawJson.data(using: .utf8)
let decoder = JSONDecoder()
let users = try! decoder.decode([User].self, from: data!)
但如果JSON看起來像這樣,頂層是字典並需要獲取數組users
:
let json =
"""
{
"users":
[
{
"id": 1,
"name":"John Doe"
},
{
"id": 2,
"name":"Luke Smith"
},
]
}
"""
閱讀JSON最有效的解決方案是什麼?我肯定可以創建另一個struct
這樣的:
struct SomeStruct: Decodable {
var posts: [Post]
}
和解碼像這樣:
let users = try! decoder.decode(SomeStruct.self, from: data!)
,但感覺不對做這樣的說法,創建一個新的模型對象,只是因爲數組是嵌套在字典中。
檢查本條規定的「包裝鍵」的標題。看來,這是解析該結構的正確方法。 http://benscheirman.com/2017/06/ultimate-guide-to-json-parsing-with-swift-4/ –