私はSwiftでJSONを取り扱う際に、
ObjectMapperを使用してるのですが
今回は読み込むJSONにネスト配列がある場合の使い方を書いていこうと思います。
ObjectMapperとは
使い方
今回、読み込むJSONは以下のようなネスト配列が含まれているものを使用します。
{
"id": 1,
"name": "user1",
"address": "hoge",
"photos": [
{
"id": 1,
"name": "photo1"
},
{
"id": 2,
"name": "photo2"
}
]
}
ObjectMapperはMappableプロトコルをモデルクラスに実装し使用するのですが
今回はネスト配列に対応するために2つ作成します。
struct User: Mappable {
var id = 0
var name = ""
var address = ""
var photos: [Photo] = []
init?(map: Map){}
mutating func mapping(map: Map) {
id <- map["id"]
name <- map["name"]
address <- map["address"]
photos <- map["photos"]
}
}
struct Photo: Mappable {
var id = 0
var name = ""
init?(map: Map){}
mutating func mapping(map: Map) {
id <- map["id"]
name <- map["name"]
}
}
JSONからモデルに変換するのには以下のように取得します。
let user: User = Mapper().map(JSONString: jsonString)!
print(user.name) // => "user1"
そして、userのphotos配列から0番目のデータを取得したい際にはこのように取得します。
let photo: Photo = user.photos[0]
これでObjectMapperでJSONのネスト配列を読み込み、扱うことが出来ました。
0 件のコメント:
コメントを投稿