2015-03-14 4 views
0

В настоящее время я работаю над простым проектом JSON, и я не могу, чтобы жизнь меня достигла части файла JSON, чтобы получить нужные мне изображения.Анализ массива json в объекте с использованием xcode

Вот что мои данные в формате JSON выглядит следующим образом:

[ 
{ 
"id": 22591183, 
"name": "HEART TSURIKAWA", 
"permalink": "heart-tsurikawa", 
"position": 1, 
"price": 39.0, 
"default_price": 39.0, 
"tax": 0.0, 
"url": "/product/heart-tsurikawa", 
"status": "sold-out", 
"on_sale": false, 
"created_at": "2014-11-13T03:24:52.000Z", 
"description": "★ From Japan!\r\n\r\n★ New condition\r\n\r\n★ A style from the bosozoku culture where handles (tsurikawa rings) were stolen from subways, trains, and buses and hung from tow hooks and in interiors as a sign of rebellion.", 
"options": [ 
    { 
    "id": 76352830, 
    "name": "Default", 
    "price": 39.0, 
    "sold_out": true, 
    "has_custom_price": false 
    } 
], 
"shipping": [ 
    { 
    "amount_alone": 6.0, 
    "amount_with_others": 5.0, 
    "country": { 
     "id": 43, 
     "name": "United States", 
     "code": "US" 
    } 
    }, 
    { 
    "amount_alone": 30.0, 
    "amount_with_others": 20.0 
    } 
], 
"images": [ 
    { 
    "url": "http://images.bigcartel.com/bigcartel/product_images/153658111/-/photo-1.JPG", 
    "secure_url": "https://images.bigcartel.com/bigcartel/product_images/153658111/-/photo-1.JPG", 
    "width": 1500, 
    "height": 1125 
    }, 
    { 
    "url": "http://images.bigcartel.com/bigcartel/product_images/153658114/-/photo-1-2.JPG", 
    "secure_url": "https://images.bigcartel.com/bigcartel/product_images/153658114/-/photo-1-2.JPG", 
    "width": 1500, 
    "height": 1125 
    }, 
    { 
    "url": "http://images.bigcartel.com/bigcartel/product_images/153658117/-/photo-2.JPG", 
    "secure_url": "https://images.bigcartel.com/bigcartel/product_images/153658117/-/photo-2.JPG", 
    "width": 1500, 
    "height": 1125 
    } 
], 
"artists": [ 

], 
"categories": [ 
    { 
    "id": 8732692, 
    "name": "Other", 
    "permalink": "other", 
    "url": "/category/other" 
    } 
] 
}, 

Это продолжается с больше, но часть я не могу досягаемость это изображения/изображение URL, так что я могу отобразить изображение на TableView.

Мой текущий код, чтобы получить массив с именами продуктов (Примечание: Я использую AFNetworking):

-(void)makeProductRequests 
{ 
NSURL *url = [NSURL URLWithString:@"http://api.bigcartel.com/constantcollection/products.json"]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:request]; 

operation.responseSerializer = [AFJSONResponseSerializer serializer]; 
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 

    self.productArray = [NSMutableArray arrayWithArray:responseObject]; 

    NSLog(@"The Array: %@",self.productArray); 

    [self.tableView reloadData]; 
    [self.refreshControl endRefreshing]; 


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

    NSLog(@"Request Failed: %@, %@", error, error.userInfo); 

}]; 

[operation start]; 
} 

ответ

0

Вам нужно копаться в JSON, чтобы получить данные, которые вы хотите. Он вложен с использованием NSDictionary и NSArray объектов.

Вот некоторый код, показывающий, как получить первое изображение из первого продукта:

self.productArray = [NSMutableArray arrayWithArray:responseObject]; 

NSDictionary *firstProduct = self.productArray.firstObject; 
NSString *identifier = product[@"identifier"]; 
NSArray *images = product[@"images"]; 
NSDictionary *firstImage = images.firstObject; 
NSString *imageURL = firstImage[@"url"]; 
+0

бы я должен для каждого продукта вручную? –

+0

Вы бы просто использовали цикл для синтаксического анализа каждого из них. – Dima

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