2016-07-13 3 views
0

Я наткнулся на проблему на работе. У меня есть определенный JSON, который мне нужно разобрать, чтобы заполнить таблицу. Но пусть игнорирует популяцию таблиц, так как я могу это сделать сам. У меня, похоже, проблема с парсингами этого большого json. Короче говоря:Проанализируйте комплекс JSON

NSData *jsonData = [NSData dataWithContentsOfURL:url]; 
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error]; 
NSArray* DetaliiTehnice = [json objectForKey:@"DetaliiTehnice"]; //10 elements 
NSArray* ExtraData = [json objectForKey:@"ExtraData"]; //2 keys 

Мне не удалось их разобрать. Из полного разбора я хочу иметь это:

- Array DateTehnice (10 elements) 
    + Array/String Denumire (1 element) 
    + Array Valori (3 elements) 
     + String Criteriu 
     + String Prod1 
     + String Prod2 

- Array ExtraData (6 elements) 
    + Array/String Denumire (1 element) 
    + Array Valori (3 elements) 
     + String Criteriu 
     + String Prod1 
     + String Prod2 

Один, отмеченный +, тот, который мне действительно нужен. Я не знаю, как получить к ним доступ. Как я могу получить значение Prod2? Мне не нужно что-то очень оптимизировать, мне просто нужно решение, из которого я могу получить доступ к элементам.

+0

Можете ли вы разместить JSON, так как это даст нам больше информации о структуре. – rckoenes

+0

Какие данные требуется для таблицыView из DateTehnice или ExtraData? – Igor

+0

Я отправил ссылку на JSON, проверил первую строку кода, которую я опубликовал. Это на сайте. Мне нужны оба массива, DateTehnice содержит строки с информацией, которую клиент будет искать (например, яйца, молоко, хлеб), а ExtraData содержит ссылку на фотографии для отображаемой информации (например: ссылка на изображение яйца). –

ответ

0
NSString *prod2_DateTehnice = [[[json objectForKey:@"DateTehnice"]objectAtIndex:0] objectAtIndex:0]objectAtIndex:2]; 

Точно так же

NSString *prod2_ExtraData = [[[json objectForKey:@"ExtraData"]objectAtIndex:0] objectAtIndex:0]objectAtIndex:2]; 
+0

Пробовал ваш код, получил нулевые значения. –

+0

Затем проверьте свой json, если он имеет значения. NSlog (@ "json Data% @", json); – anamika41

0

Если вы получаете словарь с сервера, получить данные так:

NSArray *DetaliiTehnice = json[@"DateTehnice"]; 
for (NSString *item in DetaliiTehnice) { 
    NSLog(@"%@", item); 
} 

или

NSLog(@"%@", DetaliiTehnice[1]); 

Если вы получаете массив, а затем заменить на :

NSArray *json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error]; 
NSDictionary *dict = json[1]; //change index 
NSArray *DetaliiTehnice = dict[@"DateTehnice"]; 
for (NSString *item in DetaliiTehnice) { 
    NSLog(@"%@", item); 
}