Escape Newlines в Swift, как сырая строка - PullRequest
1 голос
/ 18 марта 2020

У меня есть JSON строка в Swift 5 , которая выглядит следующим образом:

var text = """
{"ops": [{"insert": "Hello World!\n"},{"attributes": {"bold": true},"insert": "bold"},{"insert": "What if the "}, {"attributes": {"italic": true},"insert": "italic"}, {"insert": " text was awesome?\n\n"} ]}
"""

Я передаю это WKWebView, где оно анализируется с JSON.parse(text), поэтому это может быть оказано. В настоящее время JS жалуется, что оно недействительно . Но если я вручную отредактирую исходную строку и заменим все \n на \\n, , это сработает .

Мне нужно программно превратить \n в \\n и выйти со строкой на другом конце.

Я пробовал это:

let raw = #"\#(text)"#
let ready = raw.replacingOccurrences(of: "\n", with: "\\n")

Но он обрабатывает символы новой строки как символы, а не как необработанные строковые элементы.

Кажется, это должно быть легко, но я не вижу, что мне не хватает. Есть идеи?

1 Ответ

0 голосов
/ 18 марта 2020

Я нашел решение для этого. Это не обязательно ответ на мой вопрос, но он полностью устраняет проблему.

Перед отправкой данных JSON в Javascript в WKWebView я кодирую их в строку, используя Base64 кодировка. Это избавляет от необходимости беспокоиться о экранировании персонажей и тому подобного. Это прекрасно работает. :)

...