Objective-C Language
NSJSONSerializacja
Szukaj…
Składnia
- (id) JSONObjectWithData: (NSData *) opcje danych: (NSJSONReadingOptions) błąd opcji: błąd (NSError * _Nullable *) błąd
Parametry
Operator | Opis |
---|---|
dane | Obiekt danych zawierający dane JSON |
optować | Opcje odczytu danych JSON i tworzenia obiektów Foundation. |
błąd | Jeśli wystąpi błąd, po zwrocie zawiera obiekt NSError, który opisuje problem. |
Uwagi
NSJSONSerializacja jest dostępna w iOS 5.0 i nowszych Obiekt, który można przekonwertować na JSON, musi mieć następujące właściwości:
Obiekt najwyższego poziomu to NSArray lub NSDictionary.
Wszystkie obiekty są instancjami NSString, NSNumber, NSArray, NSDictionary lub NSNull.
Wszystkie klucze słownika są instancjami NSString.
Liczby nie są NaN ani nieskończonością.
Analiza JSON przy użyciu NSJSONSerialization Cel 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);
}
}
Wynik:
Item: {
id = 1;
name = sam;
}
Przykład 2: Korzystanie z zawartości adresu URL:
//Parsing:
NSData *data = [NSData dataWithContentsOfURL:@“URL HERE”];
NSError *error;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSLog(@“json :%@”,json);
Przykładowa odpowiedź:
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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow