1С 8.3 Перевод строки из Unicode в JSON
Данные > Примеры кода 1С > 1С 8.3 Строка, текст, буквы
Перейти в раздел примеры кода 1С 8.3:
Пример №1 Конвертация строки из Unicode в JSON в 1С 8.3:
//Функция читает полученный JSON декадируя текст юникод
Функция ДекодироватьUniCodeВJSON(стрВходящая)
// стрВходящая содержит {"ok":"true","description":"\u0321\u0342\u0330\u0342\u0343\u0341\u033d"}
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(стрВходящая);
ДанныеЛога = ПрочитатьJSON(Чтение);
Чтение.Закрыть();
// Вариант 1 используя перебор структуры и вывод в текстовую переменную
Текст = "";
Для Каждого Элемент Из ДанныеЛога Цикл
//добавим разделитель после предыдущего значения
Текст = Текст + ?(НЕ ПустаяСтрока(Текст), Символы.ПС, "");
//добавим представление ключа и значения:
Текст = Текст + Элемент.Ключ + " = " + Элемент.Значение;
КонецЦикла;
Возврат Текст; //Вернет ok = true description = Статус заказа изменен
// Вариант 2 мспользуя ЗаписьJSON
Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет));
ЗаписатьJSON(Запись, ДанныеЛога,);
Возврат Запись.Закрыть(); // Вернет JSON {"ok":"true","description":"Статус заказа изменен"}
КонецФункции
Функция ДекодироватьUniCodeВJSON(стрВходящая)
// стрВходящая содержит {"ok":"true","description":"\u0321\u0342\u0330\u0342\u0343\u0341\u033d"}
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(стрВходящая);
ДанныеЛога = ПрочитатьJSON(Чтение);
Чтение.Закрыть();
// Вариант 1 используя перебор структуры и вывод в текстовую переменную
Текст = "";
Для Каждого Элемент Из ДанныеЛога Цикл
//добавим разделитель после предыдущего значения
Текст = Текст + ?(НЕ ПустаяСтрока(Текст), Символы.ПС, "");
//добавим представление ключа и значения:
Текст = Текст + Элемент.Ключ + " = " + Элемент.Значение;
КонецЦикла;
Возврат Текст; //Вернет ok = true description = Статус заказа изменен
// Вариант 2 мспользуя ЗаписьJSON
Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет));
ЗаписатьJSON(Запись, ДанныеЛога,);
Возврат Запись.Закрыть(); // Вернет JSON {"ok":"true","description":"Статус заказа изменен"}
КонецФункции
Пример №2 Конвертация строки из Unicode в JSON в 1С 8.3:
//Параметры: Строка в Юникод (обязательный) Тип: Строка. Исходная строка.
//Возвращаемое значение: Тип: Строка. Строка обработанных символов.
//Описание: Возвращает преобразованную строку из формата Unicod.
//Автор: Александр Кияница (treedo). Адаптировано под русский алфавит автором сайта
Функция ПереобразоватьЮникод(Строка)
ГотововаяСтрока = "" ;
МасАлф = Новый Массив(66) ;
МасАлф[0]="А"; МасАлф[1]="Б"; МасАлф[2]="В"; МасАлф[3]="Г"; МасАлф[4]="Д"; МасАлф[5]="Е";
МасАлф[6]="Ё"; МасАлф[7]="Ж"; МасАлф[8]="З"; МасАлф[9]="И"; МасАлф[10]="Й"; МасАлф[11]="К";
МасАлф[12]="Л"; МасАлф[13]="М"; МасАлф[14]="Н"; МасАлф[15]="О"; МасАлф[16]="П"; МасАлф[17]="Р";
МасАлф[18]="С"; МасАлф[19]="Т"; МасАлф[20]="У"; МасАлф[21]="Ф"; МасАлф[22]="Х"; МасАлф[23]="Ц";
МасАлф[24]="Ч"; МасАлф[25]="Ш"; МасАлф[26]="Щ"; МасАлф[27]="Ъ"; МасАлф[28]="Ы"; МасАлф[29]="Ь";
МасАлф[30]="Э"; МасАлф[31]="Ю"; МасАлф[32]="Я";
МасАлф[33]="а"; МасАлф[34]="б"; МасАлф[35]="в"; МасАлф[36]="г"; МасАлф[37]="д"; МасАлф[38]="е";
МасАлф[39]="ё"; МасАлф[40]="ж"; МасАлф[41]="з"; МасАлф[42]="и"; МасАлф[43]="й"; МасАлф[44]="к";
МасАлф[45]="л"; МасАлф[46]="м"; МасАлф[47]="н"; МасАлф[48]="о"; МасАлф[49]="п"; МасАлф[50]="р";
МасАлф[51]="с"; МасАлф[52]="т"; МасАлф[53]="у"; МасАлф[54]="ф"; МасАлф[55]="х"; МасАлф[56]="ц";
МасАлф[57]="ч"; МасАлф[58]="ш"; МасАлф[59]="щ"; МасАлф[60]="ъ"; МасАлф[61]="ы"; МасАлф[62]="ь";
МасАлф[63]="э"; МасАлф[31]="ю"; МасАлф[65]="я";
МасКод = Новый Массив(66) ;
МасКод[0]="0410"; МасКод[1]="0411"; МасКод[2]="0412"; МасКод[3]="0413"; МасКод[4]="0414"; МасКод[5]="0415";
МасКод[6]="0401"; МасКод[7]="0416"; МасКод[8]="0417"; МасКод[9]="0418"; МасКод[10]="0419"; МасКод[11]="041A";
МасКод[12]="041B"; МасКод[13]="041C"; МасКод[14]="041D"; МасКод[15]="041E"; МасКод[16]="041F"; МасКод[17]="0420";
МасКод[18]="0421"; МасКод[19]="0422"; МасКод[20]="0423"; МасКод[21]="0424"; МасКод[22]="0425"; МасКод[23]="0426";
МасКод[24]="0427"; МасКод[25]="0428"; МасКод[26]="0429"; МасКод[27]="042A"; МасКод[28]="042B"; МасКод[29]="042C";
//Возвращаемое значение: Тип: Строка. Строка обработанных символов.
//Описание: Возвращает преобразованную строку из формата Unicod.
//Автор: Александр Кияница (treedo). Адаптировано под русский алфавит автором сайта
Функция ПереобразоватьЮникод(Строка)
ГотововаяСтрока = "" ;
МасАлф = Новый Массив(66) ;
МасАлф[0]="А"; МасАлф[1]="Б"; МасАлф[2]="В"; МасАлф[3]="Г"; МасАлф[4]="Д"; МасАлф[5]="Е";
МасАлф[6]="Ё"; МасАлф[7]="Ж"; МасАлф[8]="З"; МасАлф[9]="И"; МасАлф[10]="Й"; МасАлф[11]="К";
МасАлф[12]="Л"; МасАлф[13]="М"; МасАлф[14]="Н"; МасАлф[15]="О"; МасАлф[16]="П"; МасАлф[17]="Р";
МасАлф[18]="С"; МасАлф[19]="Т"; МасАлф[20]="У"; МасАлф[21]="Ф"; МасАлф[22]="Х"; МасАлф[23]="Ц";
МасАлф[24]="Ч"; МасАлф[25]="Ш"; МасАлф[26]="Щ"; МасАлф[27]="Ъ"; МасАлф[28]="Ы"; МасАлф[29]="Ь";
МасАлф[30]="Э"; МасАлф[31]="Ю"; МасАлф[32]="Я";
МасАлф[33]="а"; МасАлф[34]="б"; МасАлф[35]="в"; МасАлф[36]="г"; МасАлф[37]="д"; МасАлф[38]="е";
МасАлф[39]="ё"; МасАлф[40]="ж"; МасАлф[41]="з"; МасАлф[42]="и"; МасАлф[43]="й"; МасАлф[44]="к";
МасАлф[45]="л"; МасАлф[46]="м"; МасАлф[47]="н"; МасАлф[48]="о"; МасАлф[49]="п"; МасАлф[50]="р";
МасАлф[51]="с"; МасАлф[52]="т"; МасАлф[53]="у"; МасАлф[54]="ф"; МасАлф[55]="х"; МасАлф[56]="ц";
МасАлф[57]="ч"; МасАлф[58]="ш"; МасАлф[59]="щ"; МасАлф[60]="ъ"; МасАлф[61]="ы"; МасАлф[62]="ь";
МасАлф[63]="э"; МасАлф[31]="ю"; МасАлф[65]="я";
МасКод = Новый Массив(66) ;
МасКод[0]="0410"; МасКод[1]="0411"; МасКод[2]="0412"; МасКод[3]="0413"; МасКод[4]="0414"; МасКод[5]="0415";
МасКод[6]="0401"; МасКод[7]="0416"; МасКод[8]="0417"; МасКод[9]="0418"; МасКод[10]="0419"; МасКод[11]="041A";
МасКод[12]="041B"; МасКод[13]="041C"; МасКод[14]="041D"; МасКод[15]="041E"; МасКод[16]="041F"; МасКод[17]="0420";
МасКод[18]="0421"; МасКод[19]="0422"; МасКод[20]="0423"; МасКод[21]="0424"; МасКод[22]="0425"; МасКод[23]="0426";
МасКод[24]="0427"; МасКод[25]="0428"; МасКод[26]="0429"; МасКод[27]="042A"; МасКод[28]="042B"; МасКод[29]="042C";
МасКод[30]="042D"; МасКод[31]="042E"; МасКод[32]="042F";
МасКод[33]="0430"; МасКод[34]="0431"; МасКод[35]="0432"; МасКод[36]="0433"; МасКод[37]="0434"; МасКод[38]="0435";
МасКод[39]="0451"; МасКод[40]="0436"; МасКод[41]="0437"; МасКод[42]="0438"; МасКод[43]="0439"; МасКод[44]="043A";
МасКод[33]="0430"; МасКод[34]="0431"; МасКод[35]="0432"; МасКод[36]="0433"; МасКод[37]="0434"; МасКод[38]="0435";
МасКод[39]="0451"; МасКод[40]="0436"; МасКод[41]="0437"; МасКод[42]="0438"; МасКод[43]="0439"; МасКод[44]="043A";
МасКод[45]="043B"; МасКод[46]="043C"; МасКод[47]="043D"; МасКод[48]="043E"; МасКод[49]="043F"; МасКод[50]="0440";
МасКод[51]="0441"; МасКод[52]="0442"; МасКод[53]="0443"; МасКод[54]="0444"; МасКод[55]="0445"; МасКод[56]="0446";
МасКод[57]="0447"; МасКод[58]="0448"; МасКод[59]="0449"; МасКод[60]="044A"; МасКод[61]="044B"; МасКод[62]="044C";
МасКод[63]="044D"; МасКод[31]="044E; МасКод[65]="044F";
ВремСтрока = "" ;
Для Счетчик = 1 По СтрДлина(Строка) Цикл
Если Лев(Строка, 1) = "\" Тогда
Если Лев(Строка, 2) = "\u" Тогда
ВремСтрока = Прав(Лев(Строка, 6),4) ;
Если МасКод.Найти(ВремСтрока) = Неопределено Тогда
СтрокаЗамены = Прав(ВремСтрока, 1) ;
ВремСтрока = СтрЗаменить(ВремСтрока,СтрокаЗамены,ТРег(СтрокаЗамены));
Если МасКод.Найти(ВремСтрока) = Неопределено Тогда
Сообщить("Код символа не найден: " + ВремСтрока) ;
Иначе
ГотововаяСтрока = ГотововаяСтрока + МасАлф[МасКод.Найти(ВремСтрока)] ;
КонецЕсли;
Иначе
ГотововаяСтрока = ГотововаяСтрока + МасАлф[МасКод.Найти(ВремСтрока)] ;
КонецЕсли;
Строка = Прав(Строка, (СтрДлина(Строка)-6)) ;
Иначе
Строка = Прав(Строка, (СтрДлина(Строка)-2)) ;
КонецЕсли;
Иначе
ГотововаяСтрока = ГотововаяСтрока + Лев(Строка, 1) ;
Строка = Прав(Строка, (СтрДлина(Строка)-1)) ;
КонецЕсли;
КонецЦикла;
Возврат ГотововаяСтрока ;
КонецФункции
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник