Swift 3解析JSON数组然后循环播放
问题描述:
我对于在Swift 3中解析JSON数据感到非常困惑。这比我预期会来自Javascript背景更困难。从APISwift 3解析JSON数组然后循环播放
响应:
[
{
"ID": 1881,
"image": "myimageURL",
},
{
"ID": 6333,
"image": "myimageURL",
}
]
我的银行代码:
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] = []
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)
}
}
}
答
let images = [] as NSArray
以上线工作正常,但求更好方法可以使它成为s的通用数组trings替换上面的行与
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':在夫特3,不要。喜欢Swift Type Array而不是NSArray。 – Larme