user2524
user2524

Reputation: 31

How to display image from JSON URL in iOS?

I am having a problem displaying images from a JSON URL. I want to concatenate two strings to display images from the JSON URL, but I got an error in the console and I am not able to display the images.

JSON:

{
    "status": "200",
    "requestType": "bannerImages",
    "basePath": "http:\/\/192.168.0.33\/cartwebsite3\/",
    "bannerPath": "http:\/\/192.168.0.33\/cartwebsite3\/cdn-images\/banner\/",
    "response": {
        "data": [{
            "banner_id": "40",
            "banner_name": "14613036182de40e0d504f583cda7465979f958a98.jpg",
            "banner_link": "",
            "banner_blocked": "0",
            "banner_created": "admin",
            "created_on": "1461303618"
        }, {
            "banner_id": "39",
            "banner_name": "1461303615f99687dd719c4e8bc6a39e946c3d9ef7.jpg",
            "banner_link": "",
            "banner_blocked": "0",
            "banner_created": "admin",
            "created_on": "1461303615"
        }, {
            "banner_id": "38",
            "banner_name": "14613036094efdd2f969559e8b1c92e99f32ded48e.jpg",
            "banner_link": "",
            "banner_blocked": "0",
            "banner_created": "admin",
            "created_on": "1461303609"
        }]
    },
    "request": {
        "postData": [],
        "getData": {
            "type": "bannerImages",
            "result": "json"
        }
    }
}

Code:

 NSArray * arr1 = [json objectForKey: @ "bannerPath"];
    NSLog(@ "%@", arr1);
        NSMutableArray * arr2 = [json objectForKey: @ "basePath"];
        NSLog(@ "%@", arr2);
        [statusarray addObject: outstatus];
        [ban_path_arr addObject: arr1];
        [ban_base_arr addObject: arr2];
        [bannerPath_NameArr addObject: [NSString stringWithFormat: @ "%@%@", arr1,   banname]];
        NSLog(@ "%@", bannerPath_NameArr);

Console Error

2016 - 05 - 02 10: 13: 31.173 pageview[949: 22534]( "http://192.168.0.33/cartwebsite3/cdn-images/banner/(\n
\"14613036182de40e0d504f583cda7465979f958a98.jpg\",\n
\"1461303615f99687dd719c4e8bc6a39e946c3d9ef7.jpg\",\n
\"14613036094efdd2f969559e8b1c92e99f32ded48e.jpg\"\n)" )

I got an error like this \n also display unnecessary. I don't know why it is display in URL images.

How can I solve this problem?

Upvotes: 1

Views: 623

Answers (3)

Hitesh Surani
Hitesh Surani

Reputation: 13557

NSString * str1 = [json objectForKey: @ "bannerPath"];
NSString * str2 = [json objectForKey: @ "basePath"];
str1 = [str1 stringByReplacingOccurrencesOfString:@"/" withString:@""];
str2 = [str2 stringByReplacingOccurrencesOfString:@"/" withString:@""];        
NSString *strImage = [NSString stringWithFormat: @ "%@%@", str1,   banname];
imgShow.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:strImage]]];

Upvotes: 0

sourabh singhal
sourabh singhal

Reputation: 31

NSString *banname = @"14613036182de40e0d504f583cda7465979f958a98.jpg";
NSString *strImageUrl = [NSString stringWithFormat:@"%@",banname];

strImageUrl = [strImageUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];    

[cell.imgView sd_setImageWithURL:[NSURL URLWithString:strImageUrl]
                placeholderImage:[UIImage imageNamed:@"placeholder"]];

Upvotes: 2

Sheereen S
Sheereen S

Reputation: 1236

Don't use Nsarray class for concatenate two strings, use 'stringWithFormat', In your json get both string values and merge that with the Nsstring

Check Code below

NSString *banname = @"14613036182de40e0d504f583cda7465979f958a98.jpg";
NSString *imageURL = [NSString stringWithFormat:@"%@%@",[json objectForKey:@"basePath"],banname];

Upvotes: 0

Related Questions