I'm having problems converting a JSON
element into NSData
, and an NSData
variable back into JSON
in Swift.
Firstly, I'd like to extract the encryptedData
element of the following JSON data:
{
"transactionID" : 12345,
"encryptedData" : [-67,51,-38,61,-72,102,48]
}
into an NSData encryptedData
variable but can't seem to be able to do it. I'm using SwiftyJSON
to parse the JSON
as follows:
let list: Array<JSON> = json["encryptedData"].arrayValue!
But this gives me an array of ScalarNumber which I don't know how to store into an NSData
object.
Secondly, I'd like to generate JSON
back from the same NSData
object:
let jsonObject = [
"transactionID" : 12345,
"encryptedData" : encryptedData
]
But the NSData encryptedData
object doesn't get converted into [-67,51,-38,61,-72,102,48], it just seems to nullify the JSON string.
Any ideas?
Here is code to convert between JSON and NSData in swift 2.0 (adapted from Shuo's answer)
// 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;
}