Swift 2 JSON Byte数组到UIImage

时间:2016-07-03 21:52:14

标签: ios json uiimage

我的IOS应用程序正在检索包含字段“file”(即图像)的JSON对象。 该字段由Base 64

中的服务器编码
JSON Serialization: Optional({
file = "/9j/4AAQSkZJRgABAQAAAQABAAD/........

我需要在UIImageView中加载此字段。我试过多种方法但没有成功。这是我的代码的摘录:

        let task = session.dataTaskWithRequest(request, completionHandler: { (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in
        if (error == nil) {

            let json: AnyObject?
            let imageArray: NSData?
            do{
            try json = NSJSONSerialization.JSONObjectWithData(data!, options: [])
                imageArray = json!["file"] as? NSData
                print("JSON file: \(imageArray)")

            }
        catch
        {
            print("error Serialization")
            return
        }

但是imageArray是nil ...我知道如何检索这个字段(Base 64 Byte数组)并在UIImage中转换它?

1 个答案:

答案 0 :(得分:4)

JSON不能包含二进制数据。它只能包含字符串,数字,布尔值和空值。您需要自己将base64 String转换为NSData。

将第imageArray = json!["file"] as? NSData行替换为以下5行。

if let fileBase64 = json!["file"] as? String {
    imageArray = NSData(base64EncodedString: fileBase64, options: [])
} else {
    print("missing `file` entry")
}