Имя: Пароль:
1C
1С v8
Строка с кавычкой в JSON
0 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.
     Методическая информация
2 Redkiy
 
06.08.20
11:45
ЭкранированиеСимволов тут каким боком?
доступные значения: Нет, СимволыВнеASCII, СимволыВнеBMP. По умолчанию: Нет.

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

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

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

где Строка - __"__
Основная теорема систематики: Новые системы плодят новые проблемы.