NSJSONSerialization将NSDictionary转换为十六进制

时间:2016-11-10 19:34:37

标签: ios swift hex nsjsonserialization

我尝试使用NSJSONSerialization.dataWithJSONObeject函数将NSDictionary转换为JSON

代码:

do{
    let jsonData = try NSJSONSerialization.dataWithJSONObject(SerializationHelper.toDictionary(user), options: NSJSONWritingOptions.PrettyPrinted )

    print(jsonData)
    } catch {

        print(error)
    }

除了用十六进制打印jsonData外,一切顺利吗?

<7b0a2020 22706173 73776f72 6422203a 20227465 7374222c 0a202022 75736572 6e616d65 22203a20 22546573 74220a7d>

当这个十六进制字符串转换为二进制时,它确实等于JSON对象,但显然我需要立即使用JSON对象。

为什么会出现这种情况?

1 个答案:

答案 0 :(得分:1)

离解决方案只有一步之遥:

斯威夫特3:

let jsonData = try JSONSerialization.data(withJSONObject: dictionary, options: .prettyPrinted)
let jsonString = String(data: jsonData, encoding: .ascii)
print("json string = \(jsonString!)")

Swift 2:

let jsonData = try NSJSONSerialization.dataWithJSONObject(dictionary, options: .PrettyPrinted )
let jsonString = String(data: jsonData, encoding: NSASCIIStringEncoding)
print("json string = \(jsonString!)")

这两个例子都应该用do-catch包装