Ссылка JSON гласит:
any-Unicode-character-
except-"-or-\\-or-
control-character
Затем перечисляются стандартные escape-коды:
\" Standard JSON quote
\\ Backslash (Escape char)
\/ Forward slash
\b Backspace (ascii code 08)
\f Form feed (ascii code 0C)
\n Newline
\r Carriage return
\t Horizontal Tab
\u four-hex-digits
Исходя из этого, я предположил, что мне нужно убежать от всех перечисленных, а все остальные являются необязательными. Вы можете выбрать кодирование всех символов в \uXXXX
, если хотите, или вы можете использовать любые непечатаемые 7-битные символы ASCII или символы со значением Unicode, не входящие в \u0020 <= x <= \u007E
диапазон (32 - 126)
. Желательно сначала использовать стандартные символы для более коротких управляющих кодов и, таким образом, улучшить читаемость и производительность.
Дополнительно вы можете прочитать пункт 2.5 (Строки) из RFC 4627 .
Вы можете (или не можете) хотеть (далее) экранировать другие символы в зависимости от того, где вы встраивали эту строку JSON, но это выходит за рамки этого вопроса.