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

Не ладится с JSON и спец.символы

Не ладится с JSON и спец.символы
Я
   zippygrill
 
16.10.20 - 16:02
""WINDOWS-1251"" превращается в \"WINDOWS-1251\"
Как только не крутил ПараметрыЗаписиJSON, нужного результата не могу добиться.
Невидимый перенос строки в текстовый документ всплывает  естессно как \n в json    
Как их победить красиво..


        ТекстXML = Новый ТекстовыйДокумент;
    ТекстXML.ДобавитьСтроку("<?xml version=1.0 encoding=""WINDOWS-1251"" ?>");
    ТекстДляЗаписи = ТекстXML.ПолучитьТекст();
        //<?xml version=1.0 encoding="WINDOWS-1251" ?>

    ЗаписьJSON.ЗаписатьИмяСвойства("xmlStr");
    ЗаписьJSON.ЗаписатьЗначение(ТекстДляЗаписи);
    СтрJSON = ЗаписьJSON.Закрыть();
        //"xmlStr": "<?xml version=1.0 encoding=\"WINDOWS-1251\" ?>\n"
   asady
 
1 - 16.10.20 - 16:06
(0) СтрЗаменить(СтрокаJSON,Символы.ПС,"");
   zippygrill
 
2 - 16.10.20 - 16:07
(1) с ПС легче всего..а вот остальные
   Garykom
 
3 - 16.10.20 - 16:10
(0) это не баг это фича https://www.json.org/json-ru.html
   Garykom
 
4 - 16.10.20 - 16:13
(0) И вопрос нафуя ты XML через JSON пишешь?
   Garykom
 
5 - 16.10.20 - 16:14
(4)+ Если надо, обычно юзают Base64
   Garykom
 
6 - 16.10.20 - 16:14
(5)+ "xmlStr": Base65("<?xml version=1.0 encoding=\"WINDOWS-1251\" ?>\n")
   Garykom
 
7 - 16.10.20 - 16:14
(6) *Base64("<?xml version=1.0 encoding=\"WINDOWS-1251\" ?>\n")
   zippygrill
 
8 - 16.10.20 - 16:15
(4) ну вот на той стороне так api написали
   zippygrill
 
9 - 16.10.20 - 16:15
(7) а base65 - это следующий уровень скиллов?))
   Garykom
 
10 - 16.10.20 - 16:17
(9) дык хоть Base66 или даже Base666 при желании

По сути это банальная замена по основанию, как двоичная, десятичная, шестнадцатиричная, 64-ричная и т.д. система счисления
   Garykom
 
11 - 16.10.20 - 16:20
(8) интересный api, не поделишься? тоже хочу попробовать че они там курят
   Lexey_
 
12 - 16.10.20 - 16:34
(0) ЗаписьJSON.ПроверятьСтруктуру = Ложь;
...
ЗаписьJSON.ЗаписатьБезОбработки(ТекстДляЗаписи);
   zippygrill
 
13 - 16.10.20 - 16:37
(11) возможно студенты писали этот АПИ судя по тому как указали атрибуты, потому что xsd схему/пакет xdto я не могу наверстать на его основе
   VKS
 
14 - 16.10.20 - 16:38
Кстати, у меня тоже не получилось победить экранизацию символов. Все параметры перепробовал, может релиз такой. Попробуйте у себя, у записи JSON есть параметры, с ними поиграть.
Если получится, напишите номер релиза

Мне же пришлось через СтрЗаменить костылить
   VKS
 
15 - 16.10.20 - 16:40
где-то тут 
ПараметрыJSON = Новый ПараметрыЗаписиJSON(
                    ПереносСтрокJSON.Авто,// ПереносСтрок.

                    " ",// СимволыОтступа.

                    Истина,// ИспользоватьДвойныеКавычки.

                    ЭкранированиеСимволовJSON.Нет,// ЭкранированиеСимволов.

                    Ложь,// ЭкранироватьУгловыеСкобки.

                    Ложь,// ЭкранироватьРазделителиСтрок.

                    Ложь,// ЭкранироватьАмперсанд.

                    Ложь,// ЭкранироватьОдинарныеКавычки.

                    Ложь);// ЭкранироватьСлеш.
   zippygrill
 
16 - 16.10.20 - 16:46
(7) Base64Значение?
   zippygrill
 
17 - 16.10.20 - 16:46
(15) да я уже наигрался
   zippygrill
 
18 - 16.10.20 - 17:00
(12) почти то что надо.
записал так//"xmlStr": <?xml version=1.0 encoding="WINDOWS-1251" ?>

надо так//"xmlStr": "<?xml version=1.0 encoding="WINDOWS-1251\" ?>"
   Lexey_
 
19 - 16.10.20 - 17:13
(18) добавь кавычки ЗаписьJSON.ЗаписатьБезОбработки("""" + ТекстДляЗаписи + """");
   ДедМорроз
 
20 - 16.10.20 - 17:18
Вообще-то,любой символ json можно писать кодом через \x и две цифры для байта и любой парсер json должен их кушать,если не кушает,то это не json парсер,а txt парсер,тогда пишите ему через ЗаписьТекста и не скачайте json.

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