Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 无法使用NSJSONSerialization解析JSON_Ios_Swift_Swift2 - Fatal编程技术网

Ios 无法使用NSJSONSerialization解析JSON

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

无法分析JSON接收错误NSCOCAERRORDOMAIN Code=3840 我的JSON经过正确验证,并且是utf-8编码的。我正在使用这个代码

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]