• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 使用 NSJSONSerialization 从 json 反序列化图像

[复制链接]
菜鸟教程小白 发表于 2022-12-12 14:38:32 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试使用 NSJsonSerialization 反序列化来自服务器的 JSON。服务器返回一个转换为字符串的 png 图像。 这是我的代码:

    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]];
    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
        NSError *deserializationError;
        id jsonObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:&deserializationError];
        if (deserializationError) {
            NSLog(@"JSON deserialization error: %@", deserializationError.localizedDescription);
            return;
        }
} ];

这是我从服务器收到的信息:

{"photo":"�PNG\r\n\u001A\n\u0000\u0000\u0000\rIHDR\u0000\u0000\u0000:\u0000\u0000\u0000:\b\u0002\u0000\u0000\u0000n��\u007F\u0000\u0000\u001FrIDATx�}z\u0005W[y��|��..."}

但我在解析 JSON 时出错:“JSON 反序列化错误:无法完成操作。(Cocoa 错误 3840。)”。 我认为问题在于 JSON 的格式。但是那些写服务器端的人说他们可以成功地反序列化这个对象。有什么建议如何处理这个 JSON?



Best Answer-推荐答案


据我所知,JSON 响应必须是字符串。您得到的图像看起来像使用 NSPropertyListErrorMinimum 破坏 JSON 解析的图像数据(Cocoa 错误域:3840)。服务器端 JSON 需要发送编码为 base64 字符串的图像。这将使 JSON 在客户端保持有效..

您可以对 base64 编码的图像进行解码,以在客户端获取图像数据。使用this NSData category这将帮助您将 base64 字符串解码为 NSData

NSData *imageData = [NSData dataWithBase64EncodedString:base64JSONString];
// Create image with data
UIImage *image = [[UIImage alloc] initWithData:imageData];

希望有帮助!

关于ios - 使用 NSJSONSerialization 从 json 反序列化图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18825396/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap