Ios Swift 3解析JSON数组,然后循环

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

我对Swift 3中解析JSON数据感到非常困惑。这比我在Javascript背景下想象的要困难得多

API的回应:

[
{
    "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)
                    }
                }
           }