2016-10-31 2 views
2

У меня есть запрос JSON POST и возвращается ниже описание мне от этого ..Наполнение NSMutableArray из массива JSON

NSDictionary *dicData = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error]; 

Это NSLog ...

Я пытаюсь заполнить дополнительный NSMutableArray с миниатюрой. Но когда я распечатываю все ключи, единственным ключом, который я получаю, является «mediaList»

Разве не «полный размер и миниатюры других ключей?

2016-10-31 13:56:16.551008 MuzikLive MuzikLive[1444:794721] The dicData has this in it { 
    mediaList =  (
       { 
      fullsize = "/getMedia?file=/LivePic-19700101_014950899.jpg"; 
      thumbnail = "/getMedia?file=/thumbs/LivePic-19700101_014950899.jpg"; 
     }, 
       { 
      fullsize = "/getMedia?file=/LivePic-19700101_014952658.jpg"; 
      thumbnail = "/getMedia?file=/thumbs/LivePic-19700101_014952658.jpg"; 
     }, 
       { 
      fullsize = "/getMedia?file=/LivePic-19700101_014954431.jpg"; 
      thumbnail = "/getMedia?file=/thumbs/LivePic-19700101_014954431.jpg"; 
     }, 
{ 
      fullsize = "/getMedia?file=/LiveVid-19700101_025111.mp4"; 
      thumbnail = "/getMedia?file=/thumbs/LiveVid-19700101_025111.jpg"; 
     } 
    ); 
} 
+0

'dictData' имеет одно значение ключа (' mediaList' является ключом, а его значение является 'array'). Вы должны повторить этот 'array', чтобы получить значения' thumbnail'. – triandicAnt

+0

Спасибо за это, а также многое уточнил для меня. –

ответ

2

не «полный размер и уменьшенные другие ключи - они есть, но вложенными.
Словарь верхнего уровня dicData содержит только данные для ключа mediaList.
Ассоциированный данные:

(
    { 
     fullsize = "/getMedia?file=/LivePic-19700101_014950899.jpg"; 
     thumbnail = "/getMedia?file=/thumbs/LivePic-19700101_014950899.jpg"; 
    }, 
      { 
     fullsize = "/getMedia?file=/LivePic-19700101_014952658.jpg"; 
     thumbnail = "/getMedia?file=/thumbs/LivePic-19700101_014952658.jpg"; 
    }, 
      { 
     fullsize = "/getMedia?file=/LivePic-19700101_014954431.jpg"; 
     thumbnail = "/getMedia?file=/thumbs/LivePic-19700101_014954431.jpg"; 
    }, 
    { 
     fullsize = "/getMedia?file=/LiveVid-19700101_025111.mp4"; 
     thumbnail = "/getMedia?file=/thumbs/LiveVid-19700101_025111.jpg"; 
    } 
) 

, который представляет собой массив из других вложенных словарей, которые в свою очередь, каждый из которых содержит две клавиши fullsize и thumbnail.

поэтому Вы должны

  • получить значение для mediaList из dicData
  • лакомство, что данные в виде массива
  • получить каждый из элементов массива
  • рассматривать их как словари
  • экстракт fullsize и thumbnail из них
+0

Отличный !! Получил это, большое спасибо. –

1

Согласно этому JSON просмотра вы должны разобрать словарь в соответствии с этим ..

в вашем сценарии разобрать ваш словарь JSON как это.

@property(strong,nonatomic) NSMutableArray *arrayOfThumbnail; 

-(void)parseJSONDict:(NSDictionary *)dicData{ 

    //Alloc new memory to your mutable Array 
    self.arrayOfThumbnail = [[NSMutableArray alloc]init]; 
    // Get the array from json who key is "mediaList" 
    NSArray = [dicData objectForKey:@"mediaList"]; 

    for(int index=0;index < array.count ; index++){ 
     /*In Loop this Array has a dictionary at every index 
     {} curly braces in JSON indicates a Dictionary*/ 

      NSDictionary *dict = [array objectAtIndex:index]; 

     // Now Fetch the Thumbnail String by providing the keyword to the dictionary at that index 

      NSString *thumbnailString = [dict objectForKey:@"thumbnail"]; 

      [self.arrayOfThumbnail addObject:thumbnailString]; 
     } 


    } 
+0

Доброе утро, это здорово! Очень признателен . все, что мне помогло. Хорошего дня. –

Смежные вопросы