Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Bayselonarrend committed Apr 1, 2024
2 parents 6fced0d + 9087b0a commit fe24f7f
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 28 deletions.
62 changes: 34 additions & 28 deletions OInt/tools/Modules/OPI_ПреобразованиеТипов.os
Original file line number Diff line number Diff line change
Expand Up @@ -109,46 +109,52 @@
Значение = ПрочитатьJSON(ЧтениеJSON, Истина, Неопределено, ФорматДатыJSON.ISO);
ЧтениеJSON.Закрыть();

Если Не ТипЗнч(Значение) = Тип("Структура")
Если (Не ТипЗнч(Значение) = Тип("Структура")
И Не ТипЗнч(Значение) = Тип("Соответствие")
И Не ТипЗнч(Значение) = Тип("Массив") Тогда

Если ТипЗнч(Значение) = Тип("Число") Тогда
Значение = OPI_Инструменты.ЧислоВСтроку(Значение);
КонецЕсли;

OPI_Инструменты.ЗначениеВМассив(Значение);
И Не ТипЗнч(Значение) = Тип("Массив")) Или Не ЗначениеЗаполнено(Значение) Тогда

ПолучитьМассив(ИсходноеЗначение)

КонецЕсли;

КонецЕсли;

Исключение

Значение = ИсходноеЗначение;

Если ТипЗнч(Значение) = Тип("Строка")
И СтрНачинаетсяС(Значение, "[")
И СтрЗаканчиваетсяНа(Значение, "]") Тогда

Значение = СтрЗаменить(Значение, "['" , "");
Значение = СтрЗаменить(Значение, "']" , "");
Значение = СтрЗаменить(Значение, "', '" , "','");
Значение = СтрЗаменить(Значение, "' , '", "','");
Значение = СтрЗаменить(Значение, "' ,'" , "','");
ПолучитьМассив(ИсходноеЗначение);

Значение = СтрРазделить(Значение, "','", Ложь);
КонецПопытки;

Для Н = 0 По Значение.ВГраница() Цикл
Значение[Н] = СокрЛП(Значение[Н]);
КонецЦикла;

Иначе
OPI_Инструменты.ЗначениеВМассив(Значение);
КонецПроцедуры

Процедура ПолучитьМассив(Значение) Экспорт

Если ТипЗнч(Значение) = Тип("Строка")
И СтрНачинаетсяС(Значение, "[")
И СтрЗаканчиваетсяНа(Значение, "]") Тогда

Значение = СтрЗаменить(Значение, "['" , "");
Значение = СтрЗаменить(Значение, "']" , "");
Значение = СтрЗаменить(Значение, "', '" , "','");
Значение = СтрЗаменить(Значение, "' , '", "','");
Значение = СтрЗаменить(Значение, "' ,'" , "','");

Значение = СтрРазделить(Значение, "','", Ложь);

Для Н = 0 По Значение.ВГраница() Цикл
Значение[Н] = СокрЛП(Значение[Н]);
КонецЦикла;

Иначе

Если ТипЗнч(Значение) = Тип("Число") Тогда
Значение = OPI_Инструменты.ЧислоВСтроку(Значение);
КонецЕсли;

КонецПопытки;

OPI_Инструменты.ЗначениеВМассив(Значение);

КонецЕсли;

КонецПроцедуры

Процедура ПолучитьБулево(Значение) Экспорт
Expand Down
Binary file modified data.json.gpg
Binary file not shown.

0 comments on commit fe24f7f

Please sign in to comment.