LINUX.ORG.RU

JSON и экранирование символов

 


0

1

При знакомстве с JSON возник вопрос: как регламентируется экранирование прямой косой черты /? Если я правильно понимаю спецификации на https://www.json.org/json-en.html, экранировать обязательно: \/. Но все примеры на том же сайте – https://json.org/example.html – не экранируют. Есть ли какое-то правило, когда экранировать, когда – нет?

★★

Я так понимаю, что экранирование / сделано для встраивания внутрь чего-то XML-подобного, чтобы внешний парсер о него не споткнулся. Т.е. если конкретный JSON таким образом не встраивается, то и экранирование / не нужно с практической точки зрения.

xaizek ★★★★★ ()

«/» не спецсимвол, его не нужно экранировать. Экранировать нужно обратный слеш, который «\».

xpahos ★★★★★ ()
Последнее исправление: xpahos (всего исправлений: 1)
Ответ на: комментарий от xpahos

Сходи по первой ссылке. В списке спецсимволов, требующих экранирования – оба слеша. Но и без экранирования всё работало нормально. Поэтому и возник вопрос.

olegd ★★ ()
Ответ на: комментарий от olegd

ECMA-404:

All code pointsmay be placed within the quotation marks except for the code pointsthat must be escaped: quotation mark (U+0022), reverse solidus (U+005C), and the control characters U+0000 to U+001F.

Как бы JSON по дефолту UTF и / в этот промежуток символов не попадает.

xpahos ★★★★★ ()
Ответ на: комментарий от olegd

В списке спецсимволов, требующих экранирования – оба слеша.

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

Dendy ★★★★★ ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)