Вход | Регистрация
 
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 или кнопку "Обновить" в браузере.