Objective-C Language
NSJSONSerialisierung
Suche…
Syntax
- (id) JSONObjectWithData: (NSData *) - Datenoptionen: (NSJSONReadingOptions) opt Fehler: (NSError * _Nullable *) Fehler
Parameter
Operator | Beschreibung |
---|---|
Daten | Ein Datenobjekt, das JSON-Daten enthält |
opt | Optionen zum Lesen der JSON-Daten und zum Erstellen der Foundation-Objekte. |
Error | Wenn ein Fehler auftritt, enthält die Rückgabe ein NSError-Objekt, das das Problem beschreibt. |
Bemerkungen
NSJSONSerialization ist in iOS 5.0 und höher verfügbar. Ein Objekt, das in JSON umgewandelt werden kann, muss die folgenden Eigenschaften haben:
Das Objekt der obersten Ebene ist ein NSArray oder NSDictionary.
Alle Objekte sind Instanzen von NSString, NSNumber, NSArray, NSDictionary oder NSNull.
Alle Wörterbuchschlüssel sind Instanzen von NSString.
Zahlen sind nicht NaN oder unendlich.
JSON-Analyse mit NSJSONSerialization-Ziel c
NSError *e = nil;
NSString *jsonString = @"[{\"id\": \"1\", \"name\":\"sam\"}]";
NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error: &e];
if (!jsonArray) {
NSLog(@"Error parsing JSON: %@", e);
} else {
for(NSDictionary *item in jsonArray) {
NSLog(@"Item: %@", item);
}
}
Ausgabe:
Item: {
id = 1;
name = sam;
}
Beispiel 2: Verwenden des Inhalts von URL:
//Parsing:
NSData *data = [NSData dataWithContentsOfURL:@“URL HERE”];
NSError *error;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSLog(@“json :%@”,json);
Beispielantwort:
json: {
MESSAGE = “Test Message";
RESPONSE =(
{
email = "[email protected]";
id = 15;
phone = 1234567890;
name = Staffy;
}
);
STATUS = SUCCESS;
}
NSMutableDictionary *response = [[[json valueForKey:@"RESPONSE"] objectAtIndex:0]mutableCopy];
NSString *nameStr = [response valueForKey:@"name"];
NSString *emailIdStr = [response valueForKey:@"email"];
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow