trimmingCharacters(in
是错误的 API。{"
它从字符串的开头 ( ) 和结尾 ( ) 中删除字符,}
但不从字符串中删除。
你可以做的是使用replacingOccurrences(of
正则表达式选项。
let trimmedStr = str.replacingOccurrences(of: "[\"{\\]}]", with: "", options: .regularExpression)
[]
是 的正则表达式等价物CharacterSet
。
反斜杠是转义双引号并将右括号视为文字所必需的。
但不要修剪。这是一个 JSON 字符串。将其反序列化为字典
let str = """
{"fileId":1902,"x":38,"y":97}
"""
do {
let dictionary = try JSONSerialization.jsonObject(with: Data(str.utf8)) as! [String:Int]
print(dictionary)
} catch {
print(error)
}
甚至是一个结构
struct File : Decodable {
let fileId, x, y : Int
}
do {
let result = try JSONDecoder().decode(File.self, from: Data(str.utf8))
print(result)
} catch {
print(error)
}