Xcode swift 从 json 下载二进制文件
Xcode swift download binary file from json
我有 json rpc 服务,一种方法提供带有元数据的二进制文件,例如:
{
id = 1;
jsonrpc = "2.0";
result = {
anonymized = 0;
id = 331210;
logged = 1;
content = "e1xydGYxXGFkZWZsYW5nM… …AwMDAwMDAwMDAwMH19";
};
}
在客户端,我可以通过以下方式正确反序列化响应:
let responseObject = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: &parseError) as? NSDictionary
我可以读取对象结果作为 NSDictionary,但找不到将字段内容作为二进制文件保存到磁盘的方法。我没有找到任何解决方案。
感谢您的帮助。
好的,所以 content
看起来是 base64 编码的。如果是这样,你会这样做:
if let encodedData = responseObject?["result"]?["content"] as? String {
if let data = NSData(base64EncodedString: encodedData, options: nil) {
data.writeToFile(desiredFilePath, atomically: true)
}
}
我有 json rpc 服务,一种方法提供带有元数据的二进制文件,例如:
{
id = 1;
jsonrpc = "2.0";
result = {
anonymized = 0;
id = 331210;
logged = 1;
content = "e1xydGYxXGFkZWZsYW5nM… …AwMDAwMDAwMDAwMH19";
};
}
在客户端,我可以通过以下方式正确反序列化响应:
let responseObject = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: &parseError) as? NSDictionary
我可以读取对象结果作为 NSDictionary,但找不到将字段内容作为二进制文件保存到磁盘的方法。我没有找到任何解决方案。 感谢您的帮助。
好的,所以 content
看起来是 base64 编码的。如果是这样,你会这样做:
if let encodedData = responseObject?["result"]?["content"] as? String {
if let data = NSData(base64EncodedString: encodedData, options: nil) {
data.writeToFile(desiredFilePath, atomically: true)
}
}