我的要求是根据在JSON
中输入的文本创建一个UITextField
。 UITextField
没有限制。因此,如果用户输入特殊字符(“,\等),我想转义输入的值并创建一个JSON
。
字符串文字可以包含以下特殊字符:
- 转义的特殊字符\ 0(空字符),\(反斜杠),\ t(水平制表符),\ n(换行符),\ r(回车符),\“ (双引号)和\'(单引号)
- 任意Unicode标量,写为\ u {n},其中n是1–8位数的十六进制数字,其值等于有效的Unicode代码 点
例如,如果用户输入"Hello "User"! How to use a \ in a JSON?"
。它应该返回类似"Hello \"User\"! How to use a \\ in a JSON?"
的内容。不只是“或\”,我还要转义所有特殊字符。
谢谢!非常感谢您为我提供解决方案的努力。
修改 我忘了提一下,这个要求是Swift 4.2的。
答案 0 :(得分:1)
请勿“手动”转义字符以创建JSON。为此,有一个专用的JSONEncoder()
类。
顶级JSON对象只能是数组或字典。这是一个包含具有给定字符串的单个元素的数组的示例:
let text = """
Hello "User"! How to use a \\ in a JSON?
Another line line
"""
do {
let jsonData = try JSONEncoder().encode([text])
let jsonString = String(data: jsonData, encoding: .utf8)!
print(jsonString)
} catch {
print(error.localizedDescription)
}
输出为
["Hello \"User\"! How to use a \\ in a JSON?\nAnother line"]