【问题标题】:JSON parser to get ImageJSON解析器获取图像
【发布时间】: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”的内容,以便你的问题能解释更多...

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


【解决方案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"]];   
      } 
      

      希望这会奏效:)

      【讨论】:

        猜你喜欢
        • 2016-09-10
        • 1970-01-01
        • 1970-01-01
        • 2015-04-20
        • 1970-01-01
        • 2012-04-20
        • 2019-12-23
        • 1970-01-01
        • 2016-03-28
        相关资源
        最近更新 更多