尝试使用 Google 图像 API 在 Swift 中获取图像 URL
Trying to fetch image URL in Swift using Google Image API
我正在尝试将 google 图像 API 与 JSON (https://developers.google.com/image-search/v1/jsondevguide) 一起使用,以获得显示的第一张图像的 URL搜索东西时。这是我的:
let placeName = "New York"
func getImage() {
let url = NSURL(string: "https://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=\(placeName)")
let request = NSURLRequest(URL: url!)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()){ (response, go, error) -> Void in
let go = NSJSONSerialization.JSONObjectWithData(go, options: NSJSONReadingOptions.AllowFragments, error: nil) as [String:AnyObject]
let responseData = go["responseData"] as [String:AnyObject]
// let results = responseData["results"] as [String:AnyObject]
// let imageURL = results["unescapedUrl"] as String
println(responseData)
}
}
responseData 部分是我能做到的(然后 returns 一切),但试图更深一层(到 "results")会使它崩溃。
您将结果声明为字典,但链接的 Google 页面显示了一个示例,其中结果是一个字典数组。
您可以这样做:
let results = responseData["results"] as [[String:String]]
let firstObject = results[0]
let firstURL = firstObject["unescapedUrl"]
我正在尝试将 google 图像 API 与 JSON (https://developers.google.com/image-search/v1/jsondevguide) 一起使用,以获得显示的第一张图像的 URL搜索东西时。这是我的:
let placeName = "New York"
func getImage() {
let url = NSURL(string: "https://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=\(placeName)")
let request = NSURLRequest(URL: url!)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()){ (response, go, error) -> Void in
let go = NSJSONSerialization.JSONObjectWithData(go, options: NSJSONReadingOptions.AllowFragments, error: nil) as [String:AnyObject]
let responseData = go["responseData"] as [String:AnyObject]
// let results = responseData["results"] as [String:AnyObject]
// let imageURL = results["unescapedUrl"] as String
println(responseData)
}
}
responseData 部分是我能做到的(然后 returns 一切),但试图更深一层(到 "results")会使它崩溃。
您将结果声明为字典,但链接的 Google 页面显示了一个示例,其中结果是一个字典数组。
您可以这样做:
let results = responseData["results"] as [[String:String]]
let firstObject = results[0]
let firstURL = firstObject["unescapedUrl"]