Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 мая 2024, 21:43

JSON, экранирование переноса строк.

Автор buzz484090, 28 июл 2019, 18:34

0 Пользователей и 1 гость просматривают эту тему.

buzz484090

Всем привет!
Не могу разобраться с вопросом экранирования переноса строки.
Есть некоторая многострочная строка.
Далее, при выполнении кода(описанного ниже)в в строке JSON появляются символы переноса строки.
Никак не получается от них избавиться!

Подскажите, пожалуйста, что не так или как от них избавиться?

Спасибо.

PS Фишка в том, что значение в строке json должна быть точно такая же как и в переменной.

   signature  - Многострочная строка

        ЗаписьJSON = Новый ЗаписьJSON;

ЗаписьJSON.ПроверятьСтруктуру = Истина;

ПараметрыЗаписиJSON = Новый         
        ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет,"",ложь,ЭкранированиеСимволовJSON.Нет,Ложь,Ложь,Ложь,Ложь,Ложь);
ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
ЗаписьJSON.ЗаписатьНачалоОбъекта();

ЗаписьJSON.ЗаписатьИмяСвойства("signature");
ЗаписьJSON.ЗаписатьЗначение(signature);   

ЗаписьJSON.ЗаписатьКонецОбъекта();

СтрокаJSON = ЗаписьJSON.Закрыть();

LexaK

попробуйте применить кодировку в УРЛ
...
СтрокаJSON = ЗаписьJSON.Закрыть();
СтрокаJSON_УРЛ = КодироватьСтроку(СтрокаJSON , СпособКодированияСтроки.КодировкаURL);
если помогло нажмите: Спасибо!

buzz484090

Цитата: LexaK от 29 июл 2019, 09:21
попробуйте применить кодировку в УРЛ
...
СтрокаJSON = ЗаписьJSON.Закрыть();
СтрокаJSON_УРЛ = КодироватьСтроку(СтрокаJSON , СпособКодированияСтроки.КодировкаURL);

После кодировки совсем перестала быть похожем на json.
В общем, если строкой json пользоваться в рамках 1С, то "разложение" json выполняется корректно и добавленные символы "\n" видятся как перенос строки, но эта строка передается на внешний api. И что там с ним делают не понятно.

LexaK

вот на внешний АРИ в кодировке УРЛ и передают (в том числе)!
если помогло нажмите: Спасибо!

Теги: Json 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск