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)
}