let data = NSData(contentsOfFile: "myfile")
let jsonString = NSString(data: data, encoding: NSUTF8StringEncoding)
let jsonData: NSData! = jsonString.dataUsingEncoding(NSUTF8StringEncoding)!
var validJson = false
if (NSJSONSerialization.JSONObjectWithData(jsonData, options: nil, error: &error) != nil) {
validJson = true
}
Run Code Online (Sandbox Code Playgroud)
我希望上面的代码只validJson在jsonData的内容实际上是有效的JSON时设置为true.此时如果我抽什么成可以在代码中看到了"MYFILE"文件的那一刻,validJson是永远正确的.
我怎样才能解决这个问题,validJson只有当它实际上是有效的JSON时才会这样?
Ash*_*k R 13
isValidJSONObject:
Run Code Online (Sandbox Code Playgroud)
返回一个布尔值,指示是否可以将给定对象转换为JSON数据.
代码示例
let jsonString = "{}"
let jsonData = jsonString.data(using: String.Encoding.utf8)
if JSONSerialization.isValidJSONObject(jsonData) {
print("Valid Json")
} else {
print("InValid Json")
}
Run Code Online (Sandbox Code Playgroud)
我已经测试了以下内容:
let jsonString = ""
let jsonString = "<html></html>"
let jsonString = "{}"
Run Code Online (Sandbox Code Playgroud)
与代码:
let jsonData: NSData = jsonString.dataUsingEncoding(NSUTF8StringEncoding)!
var error: NSError? = nil
let validJson = (NSJSONSerialization.JSONObjectWithData(jsonData, options:nil, error: &error) != nil)
println("Valid JSON: \(validJson)")
Run Code Online (Sandbox Code Playgroud)
前两个字符串 print false,第三个字符串true按预期打印。
我认为您加载的文件可能与您预期的不同。
| 归档时间: |
|
| 查看次数: |
6885 次 |
| 最近记录: |