Nach dem Testen kann ich nur [NSJSONSerialization isValidJSONObject:]
erhalten, um ein positives Ergebnis für JSON-Daten zurückzugeben, die ich bereits mit [NSJSONSerialization JSONObjectWithData:options:error:]
analysiert habe.isValidJSONObject funktioniert nicht wie erwartet
Nach dem official documentation:
isValidJSONObject einen Booleschen Wert zurückgibt, die ein bestimmtes Objekt zeigt an, ob zu JSON-Daten umgewandelt werden können.
Doch trotz der Tatsache, dass die Objekte, die ich von JSON zu einer NSDictionary konvertieren feine zu konvertieren bin versucht, isValidJSONObject
kehrt NO
.
Hier ist mein Code:
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);
Mein Protokoll enthält die folgenden:
data is not JSON
dict is JSON
und dann die Ausgabe von dict, die an dieser Stelle ist ein riesiges NSMutableDictionary Objekt. Bei der Ausführung dieses Codes werden keine Fehler generiert, aber isValidJSONObject
scheint bei Ausführung unter data
den falschen Wert zurückzugeben.
Wie kann ich isValidJSONObject
funktionieren wie erwartet?
Dies ist verschwendete Bewegung: 'dict = [[NSMutableDictionary Alloc] Init];' –
@Hot Licks wie würden Sie vorschlagen, dass ich das tue? – Jimmery
ok, ich werde diese Zeile entfernen. Danke für den Hinweis. – Jimmery