获取Image的JSON解析器

时间:2010-05-20 10:20:16

标签: iphone objective-c iphone-sdk-3.0 cocos2d-iphone

如何使用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框架。

3 个答案:

答案 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"]];   
} 

希望能奏效:)