Converting JSON to NSData, and NSData to JSON in Swift
Here is code to convert between JSON and NSData in swift 2.0 (adapted from Shuo's answer)
// Convert from NSData to json objectfunc nsdataToJSON(data: NSData) -> AnyObject? { do { return try NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers) } catch let myJSONError { print(myJSONError) } return nil}// Convert from JSON to nsdatafunc jsonToNSData(json: AnyObject) -> NSData?{ do { return try NSJSONSerialization.dataWithJSONObject(json, options: NSJSONWritingOptions.PrettyPrinted) } catch let myJSONError { print(myJSONError) } return nil;}
In SwiftyJSON you can use rawData method to get NSData:
if let encryptedData:NSData = json["encryptedData"].rawData() { NSLog(NSString(data: encryptedData, encoding: NSUTF8StringEncoding)!)}
To generate JSON as you want you should convert data to array object:
if let encryptedDataArray = JSON(data: encryptedData).arrayObject { let jsonObject:JSON = [ "transactionID" : 12345, "encryptedData" : encryptedDataArray ] NSLog(NSString(data: jsonObject.rawData()!, encoding: NSUTF8StringEncoding)!)}
I have no idea on SwiftyJSON. I use following code snippet to convert between json and nsdata
// Convert from NSData to json objectpublic class func nsdataToJSON(data: NSData) -> AnyObject? { return NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers, error: nil)}// Convert from JSON to nsdatapublic class func jsonToNSData(json: AnyObject) -> NSData?{ return NSJSONSerialization.dataWithJSONObject(json, options: .allZeros, error: nil)}