ios - 如何将 WCF 数据服务中的 JSON 图像数据转换为 iOS 中的 UIImage

标签 ios json uiimage wcf-data-services odata

如何从 WCF 数据服务返回的 JSON 中获取图像数据?

我有一个 WCF 数据服务,它为一些对象提供服务,其中包括一些图像二进制数据(SQL Server 中的列类型为 image)。它在 JSON 中表现为乱码文本。在我为此服务编写的 iOS 客户端中,我想将此数据显示为图像 ([UIImage imageWitData:myData])。

这就是我正在做的事情:

NSData *networkData = nil; //assume this magically gets data from the service
NSError *err = nil;
//assume the returned JSON has one object and is not an array
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:networkData
     options:NSJSONReadingAllowFragments error:&err];

//handle error if needed

NSString *imageString = [dict objectForKey:@"Image"];
NSData *imageData = [imageString dataUsingEncoding:NSUTF8StringEncoding];
///The service is using UTF-8.
UIImage *image = [UIImage imageWithData:imageData];

将该图像放入UIImageView中不会显示任何内容。我做错了什么?

最佳答案

事实证明,从 WCF 数据服务返回的二进制数据是 base64 编码的。我正在使用NSData-Base64类别来解析它,并且效果很好。所以解决方案如下所示:

NSData imageData = [NSData dataFromBase64String:imageString];

当我将这些文件导入到我的项目中时,ARC 抛出了一些错误,但我能够通过删除 .m 文件中的几个 autorelease 调用来解决这些错误。

关于ios - 如何将 WCF 数据服务中的 JSON 图像数据转换为 iOS 中的 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12943157/

相关文章:

ios - 如何上传文件到iphone app

json - 当对象名称中包含DOT时如何从json对象中检索字段值

ios - 调整大小并放置来自服务器的 Retina UIImage

ios - UITableViewCell 自定义按钮图像未在 Swift 3 中更新

ios - 为什么可视化调试看不到inputAccessoryView?

json - 如何使用 NSURLSession 在 Swift 中解析 JSON

ios - 从 plist 中获取选定的图像以显示在另一个 View 中

ios - 没有 JPG 中介的 captureStillImageAsynchronouslyFromConnection

ios - 由于文件 "does not exist",Swift MoveItem 失败

JAVA json架构2 POJO