我的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中转换它?
答案 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")
}