mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-02-03 13:22:19 +02:00
Доработка функции РазложитьJSON
This commit is contained in:
parent
c0c7ea5735
commit
43a839b7cd
1
.github/workflows/os/cli_parse.os
vendored
1
.github/workflows/os/cli_parse.os
vendored
@ -279,7 +279,6 @@
|
||||
|
||||
Процедура ОпределитьДопОписание(ДопОписание, Модуль)
|
||||
|
||||
НачалоПараметров = Ложь;
|
||||
ЕстьМассив = Ложь;
|
||||
ЕстьДата = Ложь;
|
||||
ТекстДополнения = "";
|
||||
|
@ -15,7 +15,10 @@
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - пустая строка
|
||||
Функция РазложитьJSON(Знач JSON, Знач МаксимальныйУровеньВложенности = 0, Знач ИмяПараметра = "", Знач Кодировка = "UTF-8") Экспорт
|
||||
Функция РазложитьJSON(Знач JSON
|
||||
, Знач МаксимальныйУровеньВложенности = 0
|
||||
, Знач ИмяПараметра = ""
|
||||
, Знач Кодировка = "UTF-8") Экспорт
|
||||
|
||||
МаксимальнаяВложенность = МаксимальныйУровеньВложенности;
|
||||
ИскомыйПараметр = ИмяПараметра;
|
||||
@ -61,7 +64,11 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ПолучитьЗначенияРекурсивно(Знач JSON, Знач Префикс = "", Знач ТекущаяВложенность = 1)
|
||||
Функция ПолучитьЗначенияРекурсивно(Знач JSON, Знач Префикс = "", Знач ТекущаяВложенность = 1, СоответствиеПолей = "")
|
||||
|
||||
Если Не ЗначениеЗаполнено(СоответствиеПолей) Тогда
|
||||
СоответствиеПолей = Новый Соответствие;
|
||||
КонецЕсли;
|
||||
|
||||
ВозвращаемоеЗначение = "";
|
||||
|
||||
@ -75,7 +82,19 @@
|
||||
СледующаяВложенностьДоступна = МаксимальнаяВложенность = 0 Или СледующаяВложенность <= МаксимальнаяВложенность;
|
||||
|
||||
Если Не ЭтоКоллекция Или Не СледующаяВложенностьДоступна Тогда
|
||||
ПеременнаяСреды = Ключ;
|
||||
|
||||
Дублирования = СоответствиеПолей.Получить(Ключ);
|
||||
|
||||
Если Дублирования = Неопределено Тогда
|
||||
Счетчик = 0;
|
||||
ПеременнаяСреды = Ключ;
|
||||
Иначе
|
||||
Счетчик = Дублирования + 1;
|
||||
ПеременнаяСреды = Ключ + СтрЗаменить(Строка(Дублирования), Символы.НПП, "");
|
||||
КонецЕсли;
|
||||
|
||||
СоответствиеПолей.Вставить(Ключ, Счетчик);
|
||||
|
||||
ПолучитьСтроку(Значение);
|
||||
|
||||
Если Не ЗначениеЗаполнено(ИскомыйПараметр) Тогда
|
||||
@ -91,7 +110,10 @@
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
НовыйПрефикс = Ключ + "_";
|
||||
ВозвращаемоеЗначение = ПолучитьЗначенияРекурсивно(Значение, НовыйПрефикс, СледующаяВложенность);
|
||||
ВозвращаемоеЗначение = ПолучитьЗначенияРекурсивно(Значение
|
||||
, НовыйПрефикс
|
||||
, СледующаяВложенность
|
||||
, СоответствиеПолей);
|
||||
|
||||
Если ЗначениеЗаполнено(ВозвращаемоеЗначение) Тогда
|
||||
Прервать;
|
||||
|
Loading…
x
Reference in New Issue
Block a user