You can use the following code:
var error: NSError?
var dict: NSDictionary = [
"1": 1,
"2": "Two",
"3": false
]
let data = NSJSONSerialization.dataWithJSONObject(dict, options: NSJSONWritingOptions.PrettyPrinted, error: &error)
if let data = data {
let json = NSString(data: data, encoding: NSUTF8StringEncoding)
if let json = json {
println(json)
}
}
Given a NSDictionary
, it is serialized as NSData
, then converted to NSString
.
The code doing the conversion can also be rewritten more concisely as:
Swift 3:
do {
let jsonData = try JSONSerialization.data(withJSONObject: data)
if let json = String(data: data, encoding: .utf8) {
print(json)
}
} catch {
print("something went wrong with parsing json")
}
Original answer:
if let data = NSJSONSerialization.dataWithJSONObject(dict, options: NSJSONWritingOptions.PrettyPrinted, error: &error) {
if let json = NSString(data: data, encoding: NSUTF8StringEncoding) {
println(json)
}
}
Note that in order for the serialization to work the dictionary must contain valid JSON keys and values.