В идеале, найти библиотеку JSON на вашем языке , в которую вы можете передать некоторую подходящую структуру данных, и позволить ей беспокоиться о том, как избежать вещей . Это будет держать вас намного разумнее. Если по какой-либо причине у вас нет библиотеки на вашем языке, вы не хотите использовать ее (я бы не советовал это делать), или вы пишете библиотеку JSON, читайте дальше.
Побег это в соответствии с RFC. JSON довольно либерален: единственные символы, которые вы должны экранировать, это \
, "
и управляющие коды (все, что меньше U + 0020).
Эта структура экранирования специфична для JSON. Вам понадобится особая функция JSON. Все экранированные значения можно записать как \uXXXX
, где XXXX
- это кодовая единица UTF-16¹ для этого символа. Есть несколько комбинаций клавиш, например \\
, которые также работают. (И они приводят к меньшему и более четкому выводу.)
Для получения полной информации см. RFC .
esc JSON основан на JS, поэтому он использует \uXXXX
, где XXXX
- кодовая единица UTF-16. Для кодовых точек вне BMP это означает кодирование суррогатных пар, что может быть немного затруднительно. (Или вы можете просто вывести символ напрямую, так как для JSON кодируется текст Unicode, и он разрешает эти конкретные символы.)