Ios Swift 3解析JSON数组,然后循环
我对Swift 3中解析JSON数据感到非常困惑。这比我在Javascript背景下想象的要困难得多 API的回应:Ios Swift 3解析JSON数组,然后循环,ios,json,swift,Ios,Json,Swift,我对Swift 3中解析JSON数据感到非常困惑。这比我在Javascript背景下想象的要困难得多 API的回应: [ { "ID": 1881, "image": "myimageURL", }, { "ID": 6333, "image": "myimageURL", } ] 我的Swift代码: let images = [] as Array override func viewDidLoad() { super.viewDidLoa
[
{
"ID": 1881,
"image": "myimageURL",
},
{
"ID": 6333,
"image": "myimageURL",
}
]
我的Swift代码:
let images = [] as Array
override func viewDidLoad() {
super.viewDidLoad()
Alamofire.request(URL(string: "myURL")!,
method: .get)
.responseJSON(completionHandler: {(response) -> Void in
print(response)
//Parse this response. Then loop over and push value of key "image" of each object into the images array above.
})
}
在Javascript中,我只需
let images = []
let parsed = JSON.parse(response)
for(var i in parsed){
images.push(parsed[i].image)
}
上面的一行可以很好地工作,但为了更好地使用这种方法,您可以将其作为字符串的通用数组,并将上面的一行替换为
var images = [String]()
并在下面插入解析JSON对象的代码
switch(response.result) {
case .success(_):
if response.result.value != nil
{
let array = response.result.value as! [[String: String]]
array.forEach{ dictionary in
images.append(dictionary["image"] ?? "")
}
}
case .failure(_):
break
}
作为NSArray
:在Swift 3中,不要。更喜欢Swift类型数组而不是NSArray。
switch(response.result) {
case .success(_):
if response.result.value != nil
{
let array = response.result.value as! [[String: String]]
array.forEach{ dictionary in
images.append(dictionary["image"] ?? "")
}
}
case .failure(_):
break
}
var images: [String] = []
Alamofire.request("https://apiserver.com/api/images") //replace url with your url
.responseJSON { response in
if let jsonArray = response.result.value as? [[String: Any]] {
print("JSON: \(json)") // serialized json response
for json in jsonArray {
let image = json["image"]
images.append(image)
}
}
}