json - 在 Swift 中解码 JSON 中的 base64_encode 图像

标签 json swift decode

我有一个 mysql 数据库,其中包含一些图像。我从 php 文件接收数据:

php:

    $result[$key]['image'] = based64_encode($resultArray[$key]['image']);

现在有了 Json 文件,我得到如下内容:

Json:
{"image":"\/9j\/4Q\/+RXhpZgAATU0AKgAAAAgACgEPAAIAAAAGAAAAhgEQAAIAAAAKAAAAjAESAAMAAAABAAYAAAEaAAUAAAABAAAAlgEbAAUAAAABAAAAngEoAAMAAAABAAIAAE...

我有我的 swift 项目,想要将图像解码为 UIImage,到目前为止我不知道如何解码图像。我有以下内容。

Swift:
Alamofire.request(.GET, url).responseJSON { (response) -> Void in

        if let JSON = response.result.value as? [[String : AnyObject]]{
            for json in JSON{
                JSON
                let encodedImage = json["image"]
                let imageData = NSData(base64EncodedString: encodedImage)
            }

        }

如何解码图像以便可以显示它?

最佳答案

您必须将字典值从 AnyObject 转换为 String。您还必须使用 .IgnoreUnknownCharacters 选项来解码字符串数据。尝试这样

if let encodedImage = json["image"] as? String,
    imageData =  NSData(base64EncodedString: encodedImage, options: .IgnoreUnknownCharacters),
    image = UIImage(data: imageData) {
    print(image.size)
}

Swift 3.0.1 • Xcode 8.1

if if let encodedImage = json["image"] as? String, 
    let imageData = Data(base64Encoded: encodedImage, options: .ignoreUnknownCharacters),
    let image = UIImage(data: imageData) {
    print(image.size)
}

关于json - 在 Swift 中解码 JSON 中的 base64_encode 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36831069/

相关文章:

带有 "lxml"解析器的 Python BeautifulSoup 将长字符串分解为字符

ios - 将 token 发送到服务器 Swift 3

c# - 如果 DateTime 为 NULL,则无法获取 JSON 响应

ios - WKWebView 获取 Javascript 错误

ios - 如何让 UI TableView 在屏幕外启动?

c - 需要二维数组帮助的前向纠错

json - 如何在 iOS5 中将 JSON 数据对象发布到服务器?

javascript - 我该如何删除 JSON 中的特定字段以进行测试,然后在另一个测试中重新加载 JSON,而不缓存删除内容?

core-data - 如何在获取之前更改托管对象类名称

c# - Zxing二维码解码函数在c#中返回null