快速的JSONSerialization可在解析结果时提供unicode

时间:2019-07-11 06:27:59

标签: swift parsing unicode nsjsonserialization

我在使用Swift 5进行解析时遇到了理论上的问题。试想一下,我们有一个服务器返回JSON字符串。像这样:

{"user":{"englishName":"Alex","russianName":"Алёша"}}

我们可以看到,用户具有名称,该名称用英语和俄语编写。如果我想通过JSONSerialization解析此JSON,则会收到包含unicode的对象:

{
    user =     {
        englishName = Alex;
        russianName = "\U0410\U043b\U0451\U0448\U0430";
    };
}

看看我的代码:

import Foundation

let string = "{\"user\":{\"englishName\":\"Alex\",\"russianName\":\"Алёша\"}}"

let data = string.data(using: .utf8)!

let json = try! JSONSerialization.jsonObject(with: data, options: .allowFragments)

print(json)

所以,问题是:如何强制JSONSerialization.jsonObject在不使用Unicode的情况下给出结果?

P。 S.我知道以后我可以将解析结果转换为String,而Unicode将消失,像这样:

if let json = json as? [String: Any] {
    if let user = json["user"] as? [String: String] {
        print(user)
    }
}

结果将为:["englishName": "Alex", "russianName": "Алёша"]

0 个答案:

没有答案