2015-07-16 5 views
1

Я работаю над проектом ios. Я использовал AFNetworking для вызова json. Я просто хочу вызвать конкретный объект json. что означало конкретный вложенный json object.please, помогите мне это сделать. в качестве примера это мой json-канал. Здесь я хочу вызвать только первый URL-адрес в миниатюре.вызов для вложенных объектов json, в ios

{  status:"ok", 
     count:50, 
     count_total:44444, 
     pates:333, 
    - posts:[ 
     - { 
      id:3333, 
      type:"post", 
      - thumbnail_images :{ 
       - full : { 
        url:"", 
        width:666 
       }, 
       -thumbnail:{ 
        url:"", 
        width:333 

        }, 
       - large:{ 
        url:"", 
        width:777 
       } 
      } 
     }, 
     - { 
      id:3334, 
      type:"post", 
      - thumbnail_images :{ 
       - full : { 
        url:"", 
        width:6644 
       }, 
       -thumbnail:{ 
        url:"", 
        width:3345 

        }, 
       - large:{ 
        url:"", 
        width:7778 
       } 
      } 
     }, 
     - { 
      id:333344, 
      type:"post", 
      - thumbnail_images :{ 
       - full : { 
        url:"", 
        width:6665 
       }, 
       -thumbnail:{ 
        url:"", 
        width:3336 

        }, 
       - large:{ 
        url:"", 
        width:7770 
       } 
      } 
     }, 

    ] 

} 

а также это мой объектив-C-метод.

- (void)loadImagesToCategoryone 
{ 
    imagespost = nil; 
    NSString *urlOne = [NSString stringWithFormat:@"some url"]; 
    AFHTTPRequestOperationManager *managerone = [AFHTTPRequestOperationManager manager]; 
    [managerone GET:urlOne parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { 

     imagesposts = (NSDictionary *)responseObject; 
     NSArray *resultone = [imagesposts objectForKey:@"posts"]; 
     imagespost = [NSMutableArray array]; 
     for (NSDictionary *imageone in resultone) 
     { 

       Categories *categoryone = [Categories new]; 
      NSArray *firstArray = [imageone objectForKey:@"thumbnail_images"]; 
      NSLog(@"%@",firstArray[0]); 
     } 

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 

    }]; 
} 

ответ

2

отмечают, что thumbnail_images является словарь не массив.

NSArray *resultone = [imagesposts objectForKey:@"posts"]; 
if ([resultone count]) { 
    //If need thumbnail of first post only then 
    NSDictionary *firstPost = resultone[0]; 
    Categories *categoryone = [Categories new]; 
    NSDictionary *imageDetails = [imageone objectForKey:@"thumbnail_images"]; 
    NSDictionary *thumbnailImage = [imageDetails objectForKey:@"thumbnail"]; 
    NSString *urlString = [thumbnailImage objectForKey:@"url"]; 
     //Assume thumbnail image is required 
     NSLog(@"%@",urlString); 
} 
+0

спасибо, но здесь я хочу назвать только первый URL из первых thumbnail.please помочь мне с этим @AKhilrajtr –

+0

из данных JSon, существует 3 типа изображения URL, внутри 'thumbnail_images' и я думаю, что он имеет разные размеры. Вы можете использовать вышеупомянутое решение для использования изображения типа «thumbnail» из json. Если вам нужно 'full' или' large' просто изменить ключ 'thumbnail' в' [imageDetails objectForKey: @ "thumbnail"] '. – Akhilrajtr

+0

Вам нужно использовать миниатюру для первого сообщения? это требование? – Akhilrajtr