经过测试,我只能得到[NSJSONSerialization isValidJSONObject:]
来回复我已使用[NSJSONSerialization JSONObjectWithData:options:error:]
解析过的JSON数据。
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
按预期工作?
答案 0 :(得分:25)
isValidJSONObject
测试 JSON对象(NSDictionary
或NSArray
)是否可以成功
转换为 JSON数据。
它不用于测试NSData
对象是否包含有效的 JSON数据。测试有效
您刚才调用的JSON数据
[NSJSONSerialization JSONObjectWithData:data ...]
并检查返回值是否为nil
。