Ios 无法使用NSJSONSerialization解析JSON
无法分析JSON接收错误NSCOCAERRORDOMAIN Code=3840 我的JSON经过正确验证,并且是utf-8编码的。我正在使用这个代码Ios 无法使用NSJSONSerialization解析JSON,ios,swift,swift2,Ios,Swift,Swift2,无法分析JSON接收错误NSCOCAERRORDOMAIN Code=3840 我的JSON经过正确验证,并且是utf-8编码的。我正在使用这个代码 let request: NSURLRequest = NSURLRequest(URL: url) let dataTask = session.dataTaskWithRequest(request, completionHandler: { (data: NSData?, response: NSURLResponse?, error: N
let request: NSURLRequest = NSURLRequest(URL: url)
let dataTask = session.dataTaskWithRequest(request, completionHandler: { (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in
print(data)
do {
let jsonDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options:[NSJSONReadingOptions()]) as? [String: AnyObject]
print(jsonDictionary)
} catch {
print(error)
}
})
dataTask?.resume()
这段代码对我来说非常有用。我做了一些重构,使其更易于阅读,并添加了一个URL,例如:
let request = NSURLRequest(URL: NSURL(string: "https://api.ipify.org?format=json")!)
let session = NSURLSession.sharedSession()
let dataTask = session.dataTaskWithRequest(request) { (data, _, _) in
print(data)
do {
let jsonDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options:[])
print(jsonDictionary)
} catch {
print(error)
}
}
dataTask.resume()
(本代码以Swift 2.0编写)
它给出了以下输出:(我删除了类型转换以确保得到一些东西)
Optional()
{
ip=“92.103.106.88”;
}
因此,这一定是来自您正在解析的数据。你能不能把它给我们,这样我们就可以试着找出问题所在?你的
json
是集合类型[AnyObject]
而不是类型[String:AnyObject]
。请参阅下面的代码
let jsonDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options:[]) as? [AnyObject]
希望这有帮助 您的JSON真的是顶级词典还是NSArray?你可以展示你的JSON吗?这是一个数组,但我也尝试了[AnyObject]而不是[String:AnyObject]是的,我使用的是swift 2你应该在
swift2
中添加标签来回答你的问题。请告诉我你的结果:p你可以分享你的JSON
?@Sumit Oberoi只需更新我的答案。请再试一次!刚刚用你的URL尝试了我的代码,它成功了…将尝试让你知道,如果我们将数据转换为字符串,你能分享你的代码吗
let jsonDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options:[]) as? [AnyObject]