相关疑难解决方法(0)

isValidJSONObject无法按预期工作

经过测试,我只能[NSJSONSerialization isValidJSONObject:]对已经解析过的JSON数据返回正数[NSJSONSerialization JSONObjectWithData:options:error:].

根据官方文件:

isValidJSONObject返回一个布尔值,指示是否可以将给定对象转换为JSON数据.

但是,尽管我试图从JSON转换为NSDictionary的对象转换为正常,但isValidJSONObject返回NO.

这是我的代码:

NSURL * url=[NSURL URLWithString:urlString];
NSData * data=[NSData dataWithContentsOfURL:url];
NSError * error=[[NSError alloc] init];
NSMutableDictionary * dict=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];

if([NSJSONSerialization isValidJSONObject:data]){
    NSLog(@"data is JSON");
}else{
    NSLog(@"data is not JSON");
}

if([NSJSONSerialization isValidJSONObject:dict]){
    NSLog(@"dict is JSON");
}else{
    NSLog(@"dict is not JSON");
}

NSLog(@"%@",dict);
Run Code Online (Sandbox Code Playgroud)

我的日志包含以下内容:

data is not JSON
dict is JSON
Run Code Online (Sandbox Code Playgroud)

然后是dict的输出,在这一点上是一个巨大的NSMutableDictionary对象.运行此代码时不会生成错误,但在运行时isValidJSONObject似乎返回了错误的值data.

我怎样才能isValidJSONObject按预期工作?

cocoa-touch json objective-c

8
推荐指数
1
解决办法
5894
查看次数

Swift - 检查JSON是否有效

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时才会这样?

json swift

7
推荐指数
2
解决办法
6885
查看次数

标签 统计

json ×2

cocoa-touch ×1

objective-c ×1

swift ×1