2016-04-19 67 views
1

我正在向Flickr API發出一個簡單的請求。我知道請求URL是正確的,並且URL任務返回數據。但是,當我嘗試:NSJSONSerialization失敗

let jsonObject: AnyObject! = try NSJSONSerialization.JSONObjectWithData(data, options: []) 

在do,catch塊中,操作失敗,但不會使應用程序崩潰。我已經嘗試將選項更改爲MutableContainers和AllowFragments,但似乎沒有任何工作。

+0

如果使用UTF8Encoding將數據轉換爲字符串,該字符串是否看起來像JSON並且有效? – Larme

+0

是的,它格式正確 – genghiskhan

回答

1

取數據,並將其轉換成一個像這樣的字符串:

let responseString = String(data: data, encoding: NSUTF8StringEncoding) 

然後粘貼通過像jsonlint.com驗證程序,以查看是否你實際上得到有效的JSON。

我懷疑你沒有從API獲得有效的HTTP響應,所以你可能會得到描述錯誤的HTML(或純文本)?

+0

我發送它,它說它是有效的。但是,當我將它打印到控制檯時,它顯示爲jsonFlickrApi(有效數據)。這是正常的,還是這是拋出錯誤? – genghiskhan

+0

您可以發佈代碼和您從'NSData'編碼中看到的實際JSON嗎? –

+0

responseString打印爲:可選(jsonFlickrApi({「photos」:{「page」:1,「pages」:10,「perpage」:100,「total」:1000,「photo」:[{「id」 「25954170134」 ...... 「width_h」: 「1600」}]}, 「STAT」: 「OK」})) – genghiskhan