使用类似“abc”的字符串但使用“123”成功时出现NS
JSONSerialization.JSONObjectWithData错误
我不知道为什么.
错误日志
- 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")
- }
- 123
是一个有效的JSON编号,因此如果.AllowFragments,则可以将其读作JSON
选项已设置. JSON字符串必须用引号括起来:
(详见http://www.json.org):
- "abc"
在Swift字符串文字中,这些引号是使用转义的
反斜线:
- let str = "\"abc\"" // OK!
- let strData = str.dataUsingEncoding(NSUTF8StringEncoding)
- // ...