如何使用JSON解析器从服务器获取图像?
NSString *jsonString = [[NSString alloc] initWithData:response
encoding:NSUTF8StringEncoding];
NSDictionary *results = [jsonString JSONValue];
NSArray *photos = [results objectForKey:@"ImageData"];
for (NSDictionary *ImageData in photos)
{
NSString *name = [ImageData objectForKey:@"name"];
label.text = name;
//NSData *data = [ImageData objectForKey:@"src"];
//UIImage *imgs = [[UIImage alloc] initWithData:data];
//img.image = [[UIImage alloc]initWithData:[ImageData objectForKey:@"src"]];
}
上面注释的代码行未显示图像。那么我该如何显示图像呢?我也在使用Google代码中的json框架。
答案 0 :(得分:0)
我使用Google Code中的json-framework。该网址为:json-framework。
答案 1 :(得分:0)
如果您可以修改服务器响应,请询问图像的Base64表示。有一些非常快速的编码/解码例程可用 - 更多CocoaDev: BaseSixtyFour。但是,根据使用情况,它可能仍然有点矫枉过正
其他选项是例如在JSON中获取图像URL然后下载它然后可能存储/缓存它。
答案 2 :(得分:0)
试试这个,因为你似乎错过了为UIImageView分配内存:
img = [[UIImageView alloc] init];
所以即使图像是使用NSData形成的,但无法在ImageView上显示。
NSString *jsonString = [[NSString alloc] initWithData:response
encoding:NSUTF8StringEncoding];
NSDictionary *results = [jsonString JSONValue];
NSArray *photos = [results objectForKey:@"ImageData"];
for (NSDictionary *ImageData in photos)
{
NSString *name = [ImageData objectForKey:@"name"];
img = [[UIImageView alloc]init];
img.image=[[UIImage alloc]initWithData:[ImageData objectForKey:@"src"]];
}
希望能奏效:)