次JSONを取ることで、ネストされた配列を復号化するは、迅速な4
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 SomeStruct: Decodable {
var posts: [Post]
}
などのようにデコード:私は間違いなく、このように別のstruct
を作成することができ
let users = try! decoder.decode(SomeStruct.self, from: data!)
が、それは、配列があるという理由だけで、新しいモデルオブジェクトを作成し、そのようにやって右に感じることはありません。辞書の中に入れ子になっています。
に子構造体を置くことをお勧めします
は見出し「ラッパーキー」の下で、この記事をチェックしてください。これは、その構造を解析する正しい方法だと思われます。 http://benscheirman.com/2017/06/ultimate-guide-to-json-parsing-with-swift-4/ –