我在将 JSON
元素转换为 NSData
并将 NSData
变量转换回 JSON
时遇到问题在 Swift 中。
首先,我想提取以下 JSON 数据的 encryptedData
元素:
{
"transactionID" : 12345,
"encryptedData" : [-67,51,-38,61,-72,102,48]
}
进入 NSData encryptedData
变量,但似乎无法做到这一点。我使用 SwiftyJSON
来解析 JSON
如下:
let list: Array<JSON> = json["encryptedData"].arrayValue!
但这给了我一个 ScalarNumber 数组,我不知道如何将其存储到 NSData
对象中。
其次,我想从同一个 NSData
对象生成 JSON
:
let jsonObject = [
"transactionID" : 12345,
"encryptedData" : encryptedData
]
但是 NSData encryptedData
对象没有被转换为 [-67,51,-38,61,-72,102,48],它似乎只是使 JSON 字符串无效。
有什么想法吗?
最佳答案
这是 swift 2.0 中 JSON 和 NSData 之间转换的代码(改编自 Shuo 的回答)
// Convert from NSData to json object
func nsdataToJSON(data: NSData) -> AnyObject? {
do {
return try NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers)
} catch let myJSONError {
print(myJSONError)
}
return nil
}
// Convert from JSON to nsdata
func jsonToNSData(json: AnyObject) -> NSData?{
do {
return try NSJSONSerialization.dataWithJSONObject(json, options: NSJSONWritingOptions.PrettyPrinted)
} catch let myJSONError {
print(myJSONError)
}
return nil;
}
关于json - 在 Swift 中将 JSON 转换为 NSData,以及将 NSData 转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26840736/