У меня есть простой struct
для моделирования данных из ответа сервера:
struct Object: Codable {
var property: String?
}
Я пытаюсь проверить, что объект может быть декодирован:
let data = """
{
"property": "This is the first sentence.\n\nThis is the second sentence.\n\nThis is the third sentence!\n\nThis is the final sentence.\n\n-Someone"
}
""".data(using: .utf8)!
let object = try! JSONDecoder().decode(Object.self, from: data)
Однако я продолжаю сталкиваться со следующей ошибкой в консоли:
__lldb_expr_169/Project.playground:15: Fatal error: 'try!' expression unexpectedly raised an error: Swift.DecodingError.dataCorrupted(Swift.DecodingError.Context(codingPath: [], debugDescription: "The given data was not valid JSON.", underlyingError: Optional(Error Domain=NSCocoaErrorDomain Code=3840 "Unescaped control character around line 2, column 44." UserInfo={NSDebugDescription=Unescaped control character around line 2, column 44., NSJSONSerializationErrorIndex=46})))
Декодирование данных работает должным образом, когда я удаляю все экранированные символы новой строки (\n
) в значении свойства. Декодирование завершается ошибкой, пока в строке остается хотя бы одна новая строка.
Как я могу обеспечить успешное выполнение процесса декодирования при сохранении существующих новых строк?