Ios 从JSON字符串转换为UIImage总是会得到null?
我得到了这种JSON: 注意:我在“内容”中加了点,因为它的字节数组太长,无法解释这种情况Ios 从JSON字符串转换为UIImage总是会得到null?,ios,objective-c,xcode,uiimageview,uiimage,Ios,Objective C,Xcode,Uiimageview,Uiimage,我得到了这种JSON: 注意:我在“内容”中加了点,因为它的字节数组太长,无法解释这种情况 { "id":"53abc6a7975a9c10c292f670", "nfcId":"testse", "company":"TESt", "qrId":"testvalue", "address":"ajs;ldfh", "mimeType":"IMAGE", "url":"", "content":"iVBORw0KGgoAAAANSUhEUgAA..
{
"id":"53abc6a7975a9c10c292f670",
"nfcId":"testse",
"company":"TESt",
"qrId":"testvalue",
"address":"ajs;ldfh",
"mimeType":"IMAGE",
"url":"",
"content":"iVBORw0KGgoAAAANSUhEUgAA....."
}
我正在尝试获取这个Json并显示这个信息
“内容”字段有一个在服务器上从映像转换为字节数组的字节数组
我在xCode中使用此代码将这些字节转换为NSData,然后转换为UIImage,以便能够在UIImageView中显示它:
NSData *dataImage = [jsonArray[key] dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"data = %@", dataImage);
UIImage *img = [UIImage imageWithData:dataImage];
NSLog(@"img = %@", img);
图像总是给我空值。虽然,数据给了我数据数组
我还尝试了各种编码作为NSData参数:
dataUsingEncoding:NSASCIIStringEncoding
dataUsingEncoding:NSUTF8StringEncoding
dataUsingEncoding:NSUTF16StringEncoding
dataUsingEncoding:NSUTF32StringEncoding
我刚刚试过这段代码,它很有效:
NSData* dataImage = [[NSData alloc] initWithBase64EncodedString:jsonArray[key] options:0];
UIImage *img = [UIImage imageWithData:dataImage];
由Base64字符串类型编码的“内容”。我以前使用过类似的代码
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"data:image/png;base64,%@",jsonArray[key]]];
NSData *imageData = [NSData dataWithContentsOfURL:url];
UIImage *img = [UIImage imageWithData:imageData];
请注意,
initWithBase64EncodedString
仅在iOS7之后可用您的内容的可能副本
将显示为图像数据的base-64字符串表示形式。它是.png image@ali59aIt的base64编码。看看我链接到的问题。顺便说一句,图像数据永远不会用你尝试过的任何字符串编码。不能使用UTF8
、UTF16
或ASCII
对图像数据进行编码。它们是字符串编码,不是图像编码。但我不知道它是PNG还是JPG。我可以让它处理所有图像吗?是的,图像文件扩展名是什么并不重要。但在将数据转换为图像之前,请检查(imageData)是否正确,然后根据需要添加一些虚拟图像。如果我们在没有数据的情况下不检查(imageData),应用程序将因为将null转换为图像而崩溃