Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Строка с кавычкой в JSON

Строка с кавычкой в JSON
Я
   Redkiy
 
06.08.20 - 11:03
При записи строки с кавычкой в JSON получаю лишний символ (обратный слеш).

Код:

    ЗаписьJSON = Новый ЗаписьJSON();
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON, "__""__");    
    СтрокаJSON = ЗаписьJSON.Закрыть();

возвращает "__\"__"
При обратном преобразовании символ сохраняется.
Что-то лыжи не едут. Гугл молчит. Баг?
   ДенисЧ
 
1 - 06.08.20 - 11:06
ПараметрыЗаписиJSON (JSONWriterSettings)
ЭкранированиеСимволов (EscapeCharacters)
Использование:
Только чтение.
Описание:
Тип: ЭкранированиеСимволовJSON.
Определяет способ экранирования символов при записи документа JSON.
После создания объекта данное свойство имеет значение Нет.
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.6.
     Методическая информация
   Redkiy
 
2 - 06.08.20 - 11:45
ЭкранированиеСимволов тут каким боком?
доступные значения: Нет, СимволыВнеASCII, СимволыВнеBMP. По умолчанию: Нет.

Перебрал все возможные значения - результат тот же.

Конструктор по умолчанию устанавливает:
ЗаписьJSON.Параметры.ИспользоватьДвойныеКавычки - истина
ЗаписьJSON.Параметры.ЭкранироватьОдинарныеКавычки - ложь

Откуда слеш берется?
   vde69
 
3 - 06.08.20 - 11:56
В жсон кавычки нужно экранировать, в твоём коде это за тебя делает 1с
   Redkiy
 
4 - 06.08.20 - 12:06
Если платформа такая умная, и игнорирует значение параметра ЭкранироватьОдинарныеКавычки, то почему нет обратного преобразования в ЧтениеJSON?
   polosov
 
5 - 06.08.20 - 12:06
(3) Так он про обратное преобразование. Экранирующий символ должен пропасть по-идее.
   polosov
 
6 - 06.08.20 - 12:08
(4) Прибивай сам все слэши.
   trad
 
7 - 06.08.20 - 12:13
(4) Она не игнорирует ЭкранироватьОдинарныеКавычки и параметризирует экранирование одинарных кавычек.
Просто экранирование двойных кавычек не параметризируется
   Redkiy
 
8 - 06.08.20 - 12:15
(5) Да все работает! Вопрос снят.
Все, хватит, с пн в отпуск...
   trad
 
9 - 06.08.20 - 12:18
(4)
ЧтениеJSON = Новый ЧтениеJSON();
ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
ЧтениеJSON.Прочитать();
Строка = ЧтениеJSON.ТекущееЗначение;

где Строка - __"__

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.