Я работаю над iOS App, и я должен декодировать ответ json.
Данные ответа выглядят следующим образом:
[{"owner":"123456789","id":"1","liked":"0","unliked":"0","nickname":"jack","filename":"name_image.jpg","user":null,"image":null,"type":null}]
Это код в моем приложении:
//parse out the json data
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSString *owner = [json valueForKey:@"owner"];
NSLog(@"\n\nowner: %@", owner);
В журнале я вижу следующее:
owner: (
3402379524
)
Как я могу удалить круглые скобки и получить правильное значение? Я тоже пытался использовать это:
NSDictionary *owner_image = [json objectForKey:@"owner"];
но приложение аварийно завершает работу.
У вас есть массив словаря, поэтому вам нужно сначала получить объект массива и после того, как вы сможете получить значение из словаря.
NSArray* json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSString *owner = json[0][@"owner"];
NSLog(@"\n\nowner: %@", owner);
Чтобы лучше понять структуру, см. Следующий образ.
NSDictionary *owner_image = [((NSDictionary *)[json objectForIndex:0]) objectForKey:@"owner"];
NSDictionary
, это - NSString
(или, возможно, NSNumber
).
objectForKey
вместоvalueForKey:
если вам не нужен KVC. Кроме того, зачем смешивать старый и новый синтаксис? Dojson[0][@"owner"];