1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-12-25 02:42:28 +02:00

Параметр кодировки в разборе json

This commit is contained in:
Anton Titovets 2024-04-10 09:05:44 +03:00
parent 877e307d9d
commit cbaad637df

View File

@ -8,18 +8,19 @@
// конкретное значение при указании имени поля
//
// Параметры:
// JSON - Строка - JSON данные - json
// МаксимальныйУровеньВложенности - Строка - Ограничение на уровень вложенности разбора. На всю глубину по умолчанию - nesting
// ИмяПараметра - Строка - Имя поля для получения. Выводит список доступных, если не указано - name
// JSON - Строка - JSON данные - json
// МаксимальныйУровеньВложенности - Строка - Ограничение на ур. вложенности разбора. На всю глубину по умолчанию - nesting
// ИмяПараметра - Строка - Имя поля для получения. Выводит весь список, если не указано - name
// Кодировка - Строка - Кодировка, в которой записаны JSON данные - enc
//
// Возвращаемое значение:
// Строка - пустая строка
Функция РазложитьJSON(Знач JSON, Знач МаксимальныйУровеньВложенности = 0, Знач ИмяПараметра = "") Экспорт
Функция РазложитьJSON(Знач JSON, Знач МаксимальныйУровеньВложенности = 0, Знач ИмяПараметра = "", Знач Кодировка = "UTF-8") Экспорт
МаксимальнаяВложенность = МаксимальныйУровеньВложенности;
ИскомыйПараметр = ИмяПараметра;
ПолучитьКоллекцию(JSON);
ПолучитьКоллекцию(JSON, Кодировка);
Если Не ТипЗнч(JSON) = Тип("Соответствие") Тогда
ВызватьИсключение "Ошибка преобразовани данных параметра JSON";
@ -110,7 +111,7 @@
КонецПроцедуры
Процедура ПолучитьКоллекцию(Значение)
Процедура ПолучитьКоллекцию(Значение, Знач Кодировка)
Если Значение = Неопределено Тогда
Возврат;
@ -123,7 +124,7 @@
Иначе
Если ТипЗнч(Значение) = Тип("ДвоичныеДанные") Тогда
Значение = ПолучитьСтрокуИзДвоичныхДанных(Значение);
Значение = ПолучитьСтрокуИзДвоичныхДанных(Значение, Кодировка);
Иначе
Значение = Строка(Значение);
КонецЕсли;
@ -133,14 +134,14 @@
Если Файл.Существует() Тогда
ТекстовыйДокумент.Прочитать(Значение);
ТекстовыйДокумент.Прочитать(Значение, Кодировка);
Значение = ТекстовыйДокумент.ПолучитьТекст();
ИначеЕсли СтрНачинаетсяС(нРег(Значение), "http") Тогда
ИВФ = ПолучитьИмяВременногоФайла();
КопироватьФайл(Значение, ИВФ);
ТекстовыйДокумент.Прочитать(ИВФ);
ТекстовыйДокумент.Прочитать(ИВФ, Кодировка);
Значение = ТекстовыйДокумент.ПолучитьТекст();