如何解析这个json并在uicollectionview中显示

时间:2013-09-03 06:38:26

标签: ios objective-c json ios5 uicollectionview

我是iOS的新手,我已经在谷歌上搜索了这个,但我没有得到这方面的帮助。请帮我解决这个JSON解析以及如何在UICollectionView中显示这些图像。

{
    "wallpaper": [
        {
            "id": "31",
            "category": "animal",
            "title": "demo",
            "images": {
                "image_thumb": "http://192.168.1.7/ebook/uploaded_images/animal/demo/beach1377848613_thumb.jpg",
                "image1": "http://192.168.1.7/ebook/uploaded_images/animal/demo/beach1377848613_4.jpg",
                "image2": "http://192.168.1.7/ebook/uploaded_images/animal/demo/beach1377848613_5.jpg",
                "image3": "http://192.168.1.7/ebook/uploaded_images/animal/demo/beach1377848613_ipad.jpg",
                "image4": "http://192.168.1.7/ebook/uploaded_images/animal/demo/beach1377848613_android.jpg"
            },
            "hits": "0"
        },
        {
            "id": "33",
            "category": "abstract",
            "title": "demo 2",
            "images": {
                "image_thumb": "http://192.168.1.7/ebook/uploaded_images/abstract/demo2/beach1378075849_thumb.jpg",
                "image1": "http://192.168.1.7/ebook/uploaded_images/abstract/demo2/beach1378075849_4.jpg",
                "image2": "http://192.168.1.7/ebook/uploaded_images/abstract/demo2/beautifulnaturewallpapersforbackgroundhdwallpaper1378075850_5.jpg",
                "image3": "http://192.168.1.7/ebook/uploaded_images/abstract/demo2/DragonflyWallpaperRainForDekstopHD1378075850_ipad.jpg",
                "image4": "http://192.168.1.7/ebook/uploaded_images/abstract/demo2/hdwallpapers1080pwallpapers1378075850_android.jpg"
            },
            "hits": "0"
        },
}
}

2 个答案:

答案 0 :(得分:1)

NSURL * url=[NSURL URLWithString:[NSString stringWithFormat:@"http://192.168.0.5/getappdata.php"]];
NSData * data=[NSData dataWithContentsOfURL:url];

NSError * error;

//Get json data in Dictionary
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingMutableContainers error: &error];

NSLog(@"%@",json);

尝试使用此代码进行json解析...

答案 1 :(得分:1)

希望这会有所帮助; - )

//Let's asume your json is loaded in this variable
NSString * myJsonString = @""; 

//convert string to dict
NSData * data = [myJsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError * error;
NSDictionary * dict = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingMutableContainers error: &error];

//Load array wallpapers (array of dictionaries)
NSArray * myArray = [dict objectForKey:@"wallpaper"];

现在你必须使用所需的设计创建一个UITableViewCell(让我们称之为CustomCell),包括一个UIImageView来显示图像。

然后在TableView DataSource中:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [myArray count];

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"CustomCell";
    CustomCell *cell = (CustomCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        UIViewController *temporaryController = [[UIViewController alloc] initWithNibName:@"CustomCell" bundle:nil];
        cell = (CustomCell *)temporaryController.view;
    }

    NSDictionary * dict = [myArray objectAtIndex:i];

    NSString * image_thumb_url = [[dict objectForKey:@"images"] objectForKey:@"image_thumb"];

    //todo: download the image and display it into your cell here

    return cell;

}