テスト後、[NSJSONSerialization isValidJSONObject:]
すでに解析した JSON データに対してのみ肯定を返すことができます[NSJSONSerialization JSONObjectWithData:options:error:]
。
公式ドキュメントによると:
isValidJSONObject は、特定のオブジェクトを JSON データに変換できるかどうかを示すブール値を返します。
isValidJSONObject
ただし、JSON からNSDictionaryに変換しようとしているオブジェクトが正常に変換されるという事実にもかかわらず、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
そして、この時点で巨大な NSMutableDictionary オブジェクトである dict の出力。このコードを実行してもエラーは発生しませんが、 でisValidJSONObject
実行すると間違った値が返されるようdata
です。
どうすればisValidJSONObject
期待どおりに仕事をすることができますか?