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);

我的日志包含以下内容:

data is not JSON

dict is JSON

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

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

回答:

isValidJSONObject测试 JSON对象 (a NSDictionaryNSArray)是否可以成功转换为 JSON数据

它不是用于测试NSData对象是否包含有效的 JSON数据 。要测试有效的JSON数据,您只需调用

[NSJSONSerialization JSONObjectWithData:data ...]

并检查返回值是否为nil

以上是 isValidJSONObject无法按预期工作 的全部内容, 来源链接: utcz.com/qa/431735.html

回到顶部