NSJSONSerialization.JSONObjectWithData
错误但成功使用" 123"
我不知道为什么。
错误日志
2015-11-04 17:42:02.997 SwiftJsonDemo[27196:2701028] Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.}
码
//var str = "123" // ok
var str = "abc" // error
let strData = str.dataUsingEncoding(NSUTF8StringEncoding)
if let d = strData {
let urlStr = String(data: d, encoding: NSUTF8StringEncoding)
do {
let json = try NSJSONSerialization.JSONObjectWithData(d, options: NSJSONReadingOptions.AllowFragments)
} catch let e {
print(e)
}
} else {
print("data error")
}
答案 0 :(得分:5)
123
是一个有效的JSON编号,因此如果.AllowFragments
可以将其读作JSON
选项已设置。 JSON字符串必须用引号括起来:
(有关详细信息,请参阅http://www.json.org):
"abc"
在Swift字符串文字中,这些引号会被转义 反斜线:
let str = "\"abc\"" // OK!
let strData = str.dataUsingEncoding(NSUTF8StringEncoding)
// ...
答案 1 :(得分:2)
如果使用swift,请检查以下代码行:
let contentType = response.response?.allHeaderFields["Content-Type"] as? String
内容类型不会出现:“application / json”。它表示来自服务器的响应不是有效的JSON字符串。
答案 2 :(得分:0)
请查看邮递员的回应。我刚刚通过检查json响应是否是正确格式或html格式
来解决答案 3 :(得分:0)
我得到了同样的错误。原来错误在于请求中。以下语法修复了向请求添加参数时的问题。
request.setValue("Value", forHTTPHeaderField: "Key")