我得到这种JSON:
注意:我把点放在“内容”中,因为它太长了字节数组abd只是为了解释这种情况。
{
"id":"53abc6a7975a9c10c292f670",
"nfcId":"testse",
"company":"TESt",
"qrId":"testvalue",
"address":"ajs;ldfh",
"mimeType":"IMAGE",
"url":"",
"content":"iVBORw0KGgoAAAANSUhEUgAA....."
}
我试图让这个Json得到这个信息 “content”字段有一个Byte数组,在服务器上从Image转换为字节数组。
我在xCode中使用此代码将这些字节转换为NSData,然后转换为UIImage以便能够在UIImageView中显示它:
NSData *dataImage = [jsonArray[key] dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"data = %@", dataImage);
UIImage *img = [UIImage imageWithData:dataImage];
NSLog(@"img = %@", img);
图像总是给我null。虽然,数据给我数据数组。
我也尝试了各种编码作为NSData参数:
dataUsingEncoding:NSASCIIStringEncoding
dataUsingEncoding:NSUTF8StringEncoding
dataUsingEncoding:NSUTF16StringEncoding
dataUsingEncoding:NSUTF32StringEncoding
答案 0 :(得分:2)
我之前使用过这样的代码
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"data:image/png;base64,%@",jsonArray[key]]];
NSData *imageData = [NSData dataWithContentsOfURL:url];
UIImage *img = [UIImage imageWithData:imageData];
请注意,initWithBase64EncodedString
仅适用于iOS7及以上版本
答案 1 :(得分:1)
我现在尝试使用此代码并且可以正常运行:
NSData* dataImage = [[NSData alloc] initWithBase64EncodedString:jsonArray[key] options:0];
UIImage *img = [UIImage imageWithData:dataImage];
Base64字符串类型编码的“内容”。