json - 如何解码 JSON 字符串中的 Base 64 字符串以生成 UIImage?

标签 json swift base64 decode qr-code

我已将我的代码粘贴在下面。本质上,我得到了一个 SDK,它有一个 JSON 字符串,然后我必须解析该字符串才能获取生成 QR 码的 Base64 字符串。我一直在研究它,但代码在“let nsd = ...”行出错,并显示消息:“线程 1: fatal error :展开可选值时意外发现 nil”

任何对我出错的地方的帮助将不胜感激。对于 Swift 和一般编程来说,我是一个新手,所以我发现这非常具有挑战性。我也不认为我正确地将响应转换为 JSON,因为这是它首先出错的地方。

func qrCodeGenerator(payload : String) {

    guard let response = /response as a string from SDK/ else {return}


    /* convert response string to an NSData response, so as to convert to JSON in the code below */
    let nsd: NSData = NSData(base64Encoded: response, options: NSData.Base64DecodingOptions.ignoreUnknownCharacters)!

    var jsonResponse = JSON.null

    do {

        /* convert the response to a json object */
        try jsonResponse = JSONSerialization.jsonObject(with: nsd as Data, options: []) as! JSON

        /* enter the result array, as the base64 string is contained there */
        var result = jsonResponse["result"][0]
        var resqr_64 = result["qr_b64"].stringValue

        print(resqr_64)

        var base64string = resqr_64

        /*The base64 string lies beyond the comma*/
        var base64image = String(base64string.split(separator: ",")[1]) as String

        var decodeString : NSData = NSData(base64Encoded: base64image, options: [])!
        var decodedimage: UIImage = UIImage(data: decodeString as Data)!

        QRCodeImageView.image = decodedimage
    } catch {
        print(error)
    }
}

任何帮助将不胜感激!非常感谢。

最佳答案

 if let decodedData = Data(base64Encoded: (dataDict["THUMBNAIL"] as? String)! , options: .ignoreUnknownCharacters{

            self.imgThumb.image = UIImage(data: decodedData)

        }

try this code to get image from base64 string :)

关于json - 如何解码 JSON 字符串中的 Base 64 字符串以生成 UIImage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51556139/

相关文章:

java - 在 SCALA 中使用动态值进行 Base64 JAVA 编码 - GATLING

Java:ZipFileSystemProvider 不复制 zip 文件中的文件

javascript - 如何从 MVC Controller 访问 JSON 属性

java - 在 Java 中存储数据的最佳方式(如 pickle)

ios - removeFromSuperview() View 未从第一次移除

swift - iOS 9 : Determine size of collection view in portrait and landscape

C - 解码 base64 时的位移位

ios - 使用 Base64 和 JSON 上传大图像

json - Scala argonaut 将 jEmtpyObject 编码为 'false' 而不是 'null'

swift - 根据优先级在 Tableview 中自动排列行 - Swift 3/4