概要
与えられるJSONはこんな感じで,hobbies
の部分のデータ取得方法がわからなかった.
そこについて説明する.
{
"users":[
{
"name": "太郎",
"age": 23,
"hobbies": [
{
"id": 1,
"name": "野球"
},
{
"id": 5,
"name": "ダーツ"
},
{
"id": 20,
"name": "缶蹴り"
}
]
},
.
.
.
]
}
実際のコード
Alamofire.request(requestUrl).responseJSON{ response in
switch response.result {
case .success(let value):
let json = JSON(value)
json["users"].forEach{(_, data) in
let name = data["name"].string!
let age = data["age"].int!
let hobbyList = data["hobbies"].array
hobbyList?.forEach{(data) in
let hobbyId = data["id"].int!
let hobbyName = data["name"].string!
}
}
case .failure(let error):
print("エラーだよー")
}
}
こんな感じで取得することが出来ます.
let hobbyList = data["hobbies"].array
ここが対象のところで,.array
とすることで,jsonの"hobbies"のデータを取得しています.
.arrayObject
もあるのですが,"hobbies"の中身をオブジェクトに変換してしまい?:
のところが=
になり,上手く出来ませんでした.
.arrayの場合
{
"id": 1,
"name": "野球"
}
.arrayObjectの場合
{
"id" = 1,
"name" = "野球"
}