JSON解析器获取图像
Posted
技术标签:
【中文标题】JSON解析器获取图像【英文标题】:JSON parser to get Image 【发布时间】:2010-05-20 10:20:15 【问题描述】:如何使用 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 框架。
【问题讨论】:
为什么要使用 JSON 解析器? JSON 并不是特别适合二进制数据。 我正在从服务器获取除图像之外的所有数据使用 Json 解析器。如何在检索时将图像数据转换为图像。 您能发布提取图像所需的 JSON 代码吗? 每个json对象的'src'字段是否真的包含二进制图像数据?你是这样对待它的,但这将是一个非常不寻常的 json 用法。 你能告诉我 [ImageData objectForKey:@"src"] 字典中键值“src”的内容,以便你的问题能解释更多... 【参考方案1】:我使用来自 Google Code 的 json-framework。网址是:json-framework。
【讨论】:
【参考方案2】:如果您可以修改服务器响应,请询问图像的 Base64 表示。有一些非常快速的编码/解码例程可用 - 更多在CocoaDev: BaseSixtyFour。但是,根据用例,它可能仍然有点矫枉过正。 其他选项例如以 JSON 格式获取图像 url,然后下载它,然后可能存储/缓存它。
【讨论】:
【参考方案3】:尝试使用它,因为您似乎错过了为 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"]];
希望这会奏效:)
【讨论】:
以上是关于JSON解析器获取图像的主要内容,如果未能解决你的问题,请参考以下文章
如何使用json解析android在listview中获取图像