尝试JSON序列化后崩溃

时间:2016-03-24 13:57:26

标签: swift

我有这个简单的代码:

let task = session.dataTaskWithRequest(request, completionHandler: {(data, response, error) in

                    print(response)

                    do {
                        let JSON = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments)

                        // never printed                    
                        print(JSON)

                        guard let JSONDictionary :NSDictionary = (JSON as! NSDictionary) else {
                            print("Not a Dictionary")

                            return
                        }

                        print("JSONDictionary! \(JSONDictionary)")

                    }
                    catch let JSONError as NSError {

                        print("\(JSONError)")
                    }

                });

                //
                task.resume()

好吧,我可以阅读回复,然后我得到(lldb)并且应用程序崩溃了。永不打印print(JSON)行。我真的无法理解发生了什么,感谢任何提示。

1 个答案:

答案 0 :(得分:0)

您的数据不是JSON,它是JSONP(带填充的JSON)。 (http://webix.com/snippet/509f218d

NSJSONSerialization无法序列化JSONP。

由于try失败,print(JSON)无法执行,代码会跳转到catch块。