进入JSON目录?
JSON: 我对var结果7等不满意。这显然不是正确的方法。我不太清楚为什么我们不能直接使用result[“posts”][0]并像那样堆叠它 你能解释一下为什么有时候会有双感叹号吗?我知道这是强制展开,但为什么它是双重的进入JSON目录?,json,swift,Json,Swift,JSON: 我对var结果7等不满意。这显然不是正确的方法。我不太清楚为什么我们不能直接使用result[“posts”][0]并像那样堆叠它 你能解释一下为什么有时候会有双感叹号吗?我知道这是强制展开,但为什么它是双重的 谢谢 您可以考虑使用一些可以利用可选语义的本机swift json库,例如 然后你的代码可以重写为 let urlPath = "http://example.com/instanews/api/get_posts/" let url: NSURL = NSURL(s
谢谢 您可以考虑使用一些可以利用可选语义的本机swift json库,例如 然后你的代码可以重写为
let urlPath = "http://example.com/instanews/api/get_posts/"
let url: NSURL = NSURL(string: urlPath)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in
println("Task completed")
if((error) != nil) {
// If there is an error in the web request, print it to the console
println(error.localizedDescription)
}
var err: NSError?
var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary
if(err != nil) {
// If there is an error parsing JSON, print it to the console
println("JSON Error \(err!.localizedDescription)")
} else {
var result: AnyObject = jsonResult["posts"]! as NSArray
var result2: AnyObject = result[0]!
var result3: AnyObject = result2["attachments"]!!
var result4: AnyObject = result3[0]!
var result5: AnyObject = result4["images"]!!
var result6: AnyObject = result5["full"]!!
var result7: AnyObject = result6["url"]!!
println(result7)
}
})
task.resume()
尝试此操作,但出现错误:AnyObject?没有成员“下标”您现在使用的json库是什么?
let urlPath = "http://example.com/instanews/api/get_posts/"
let url: NSURL = NSURL(string: urlPath)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in
println("Task completed")
if((error) != nil) {
// If there is an error in the web request, print it to the console
println(error.localizedDescription)
}
var err: NSError?
var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary
if(err != nil) {
// If there is an error parsing JSON, print it to the console
println("JSON Error \(err!.localizedDescription)")
} else {
var result: AnyObject = jsonResult["posts"]! as NSArray
var result2: AnyObject = result[0]!
var result3: AnyObject = result2["attachments"]!!
var result4: AnyObject = result3[0]!
var result5: AnyObject = result4["images"]!!
var result6: AnyObject = result5["full"]!!
var result7: AnyObject = result6["url"]!!
println(result7)
}
})
task.resume()
if let result7 = jsonResult["posts"]["attachments"]["images"]["full"]["url"].string {
println(result7)
}