這可能是我所遇到的最奇怪的事。我們已決定繼續,但我想發表一篇文章來嘗試和理解。斯威夫特NSJSONSerialization.JSONObjectWithData()無法讀取「OK」的字符串數據僅
所以我從我們的服務器抓取一些JSON數據,一切似乎工作除了字符串「OK」就好了。
下面是函數:
func getRequest(token:String, url:String, callback:(NSDictionary) ->()){
let request = NSMutableURLRequest(URL: NSURL(string: url)!)
request.HTTPMethod = "GET"
request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if data != nil && response != nil{
do{
let responseTest = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as? NSDictionary
if responseTest != nil{
let response:NSDictionary = responseTest!
callback(response)
}
} catch let error as NSError{
print("A JSON parsing error occured: \(error)")
}
} else {
callback(NSDictionary())
}
}
task.resume()
}
數據回來形成呼叫,然後響應分析所有數據的正確,除了它帶回來無法讀取數據的狀態「OK」。我們將狀態更改爲「成功」,並且工作得很好。我們測試了一堆不同的單詞,它們都工作得很好,除了單詞「OK」,它總是返回無法讀取數據。我見過的最奇怪的事情。現在我們要走的是「成功」的地位,但我無法從我的腦海中解脫出來。爲什麼?!?!那兩個字母有什麼不同?任何人遇到這個問題,或者只是有一種理解,我似乎缺乏?這讓我瘋狂。
這裏是我們的嘗試之一的JSON:
{ 「用戶名」: 「gang_su」, 「狀態」: 「0K」, 「狀態2」: 「這是更爲OK」, 「STATUS3」 :「OK OK」,「status4」:「OK」,「status5」:true,「status6」:123,「status7」:12345.678,「status8」:[1,2,3,4] :[1.02,2.02,3.02,4.02]}
謝謝!
聽起來很瘋狂,你可以發佈你的原始json嗎? –
是的。我添加了JSON到帖子。 –
請注意,'確定'有單引號。請參閱:[JSON介紹(http://www.json.org))。 – zaph