【发布时间】:2015-11-26 00:08:40
【问题描述】:
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
}
我希望上面的代码仅在 jsonData 的内容实际上是有效的 JSON 时设置 validJson true。目前,如果我将任何内容注入到代码中可以看到的“myfile”文件中,validJson总是为真。
我该如何解决这个问题,所以 validJson 只有在它实际上是有效的 JSON 时才为真?
【问题讨论】:
-
您能否举一个实际解析并报告为有效的无效数据的示例?
-
@Sulthan 我刚刚将 myfile 替换为 HTML 文件,但仍将
validJson设置为 true。 -
只使用
jsonString的常量字符串,让测试用例更简单。 -
@zaph 谢谢,我现在将尝试直接设置该变量的值。
-
为什么要将 NSData 转换为 NSString,然后再转换回 NSData?