-2
Я только учусь кода в Xcode, поэтому вопрос может быть довольно легко)Как разобрать JSON с использованием API Cocoa?
У меня есть пример кода:
NSData *jsonSource = [NSData dataWithContentsOfURL:
[NSURL URLWithString:@"http://gooruism.com/feed/json"]];
id jsonObjects = [NSJSONSerialization JSONObjectWithData:
jsonSource options:NSJSONReadingMutableContainers error:nil];
for (NSDictionary *dataDict in jsonObjects) {
NSString *title_data = [dataDict objectForKey:@"title"];
Теперь я хочу, чтобы разобрать значения из моего собственного JSON, который выглядит как это:
{
"took" : 4,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 14,
"max_score" : 1.0,
"hits" : [ {
"_index" : "carinspect",
"_type" : "inspect",
"_id" : "ZEDrkX9AQXKsZYdFr02ilw",
"_score" : 1.0,
"fields" : {
"UserID" : [ 2 ]
}
}, {
"_index" : "carinspect",
"_type" : "inspect",
"_id" : "778xOLe6Qy-jvnQUzmhADA",
"_score" : 1.0,
"fields" : {
"UserID" : [ 2 ]
}
},
Как я могу изменить
- массива, откуда данные т AKEN от
id jsonObjects
к чему-то вродеhits.hits jsonObjects
- Получить значение _id (что-то вроде
NSString *title_data = [dataDict objectForKey:@"_id"];
) - Получить значение UserID (как
NSString *title_data = [dataDict objectForKey:@"fields.UserID"];
)
К сожалению, если язык, который я пытаюсь объяснить это ужасно
Вы, как правило, не хотите следовать через NSDictionary (представляющий объект JSON), используя 'for (x in y)', но вместо этого хотите явно указать элементы, которые вы хотите извлечь - 'NSDictionary * hits = jsonObj ЕКТС [@ "хитов"]; '. –
(Я сильно подозреваю, что вы получили приведенный выше код, слепо копируя код, который вы не понимали (но это был синтаксический анализ массива JSON). Перейдите на json.org и изучите синтаксис JSON - это займет всего 5-10 минут, чтобы учиться, и вы обречены, если не понимаете этого.) –
@ AndreyPopov, в чем проблема? вы не знаете, как разбирать этот JSON? – meda