这可能是我遇到过的最奇怪的事情了。我们已决定继续前进,但我想发一篇文章来尝试理解。
所以我从我们的服务器获取一些 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”,它总是返回“无法读取数据”。我见过的最奇怪的事情。现在我们将处于“成功”状态,但是,我就是无法将其从我的脑海中抹去。为什么?!?!这2个字母有什么不同?还有其他人遇到过这个问题或者只是了解我似乎缺乏的吗?这让我发疯。
这是我们一次尝试中的 JSON:
{"username":"gang_su","status":"0K","status2":"这样好多了","status3":"好的好的好的","status4":"好的", "status5":true,"status6":123,"status7":12345.678,"status8":[1,2,3,4],"status9":[1.02,2.02,3.02,4.02]}
谢谢!!
最佳答案
{ username: req.user.username, status: 'OK', status2: "This is much more OK" }
上面的“JSON”用单引号括起来就OK了。这是无效的 JSON。
你可能会说,这不好。
它们需要是双引号,就像您在其他字符串中使用的那样。
关于ios - Swift NSJSONSerialization.JSONObjectWithData() 无法仅读取 "OK"字符串的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33768857/