Skip to content

Чтение параметров из json файла

License

Notifications You must be signed in to change notification settings

oscript-library/ReadParams

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ReadParams

Чтение параметров из json файла

Чтение из файла

Читает параметры из файла json и возвращает соответствие параметров. Параметры читаются рекурсивно, т.е. если в файле указана структура, в ней структура, а уже в ней п1 = 100, то в соответствии будет прочитанныеПараметры["п1"] = 100

Пример из тестов 1. Чтение файла

записьТекста = Новый ЗаписьТекста(файлПараметров);
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число"": 100, ""парам.Строка"": ""100"", ""парам.Булево"": true}" );
ЗаписьТекста.Закрыть();

ошибкиЧтения = Неопределено;

прочитанныеПараметры = ЧтениеПараметров.Прочитать( файлПараметров, ошибкиЧтения );

// ТипЗнч(прочитанныеПараметры) = Тип("Соответствие");
// прочитанныеПараметры.Количество() = 3;

// ТипЗнч(ошибкиЧтения) = Тип("Соответствие");
// ошибкиЧтения.Количество() = 0;

// прочитанныеПараметры["парам.Число"] = 100;
// прочитанныеПараметры["парам.Строка"] = "100";
// прочитанныеПараметры["парам.Булево"] = Истина;
	

Так же на вход можно подавать файл (Новый файл()) массив файлов, массив путей к файлам.

Если ничего не указывать в качестве пути, то будет прочитан файл param_os.json из текущего каталога.

Пример из тестов 2. Чтение файла из текущего каталога

файлПараметров = ОбъединитьПути( ТекущийКаталог(), "param_os.json");

записьТекста = Новый ЗаписьТекста(файлПараметров);
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число"": 100, ""парам.Строка"": ""100"", ""парам.Булево"": true}" );
ЗаписьТекста.Закрыть();

прочитанныеПараметры = ЧтениеПараметров.Прочитать();

Ссылки в переданном файле на другие файлы к чтению

Если указать в файле параметров имя параметра, которое начинается с ReadFile, а в значении путь к файлу (в том числе относительно этого файла), то будут прочитан так же и указанный файл.

Пример из теста 3. Чтение файла с ссылками на другие файлы

путь2 = ПутьВЗначениеJSON( ОбъединитьПути(".", "testParam2.json") );
путь3 = ПутьВЗначениеJSON( ОбъединитьПути(".", "testParam3.json") );

записьТекста = Новый ЗаписьТекста(файлПараметров1);
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число"": 1, ""парам.Строка"": ""1"", ""парам.Булево"": true, ""ReadFile"": """ + путь2 + """}" );
ЗаписьТекста.Закрыть();

записьТекста = Новый ЗаписьТекста(файлПараметров2);
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число2"": 2, ""парам.Строка2"": ""2"", ""парам.Булево2"": false, ""ReadFile"": """ + путь3 + """}" );
ЗаписьТекста.Закрыть();

записьТекста = Новый ЗаписьТекста(файлПараметров3);
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число"": 3, ""парам.Строка"": ""3""}" );
ЗаписьТекста.Закрыть();

прочитанныеПараметры = ЧтениеПараметров.Прочитать( файлПараметров1 );

// прочитанныеПараметры["парам.Число"] = 3;
// прочитанныеПараметры["парам.Строка"] = "3";
// прочитанныеПараметры["парам.Булево"] = Истина;

// прочитанныеПараметры["парам.Число2"] = 2;
// прочитанныеПараметры["парам.Строка2"] = "2";
// прочитанныеПараметры["парам.Булево2"] = Ложь;

// прочитанныеПараметры["ReadFile"] = ОбъединитьПути(".", "testParam3.json");

Подстановки в параметрах

Если для какого-либо параметра в качестве значения используется шаблон %ИмяПараметра%, то в прочитанных параметрах будет предпринята попытка подменить этот шаблон на соответствующее значение

Пример из тестов 4. Использование подстановки

записьТекста = Новый ЗаписьТекста(файлПараметров);
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число"": 100,
	|""парам.Подстановка1"": ""999+%парам.Число%+%парам.Число%"",
	|""парам.Подстановка2"": ""0+%парам.Подстановка1%+%парам.Число%""
	|}" );
ЗаписьТекста.Закрыть();

прочитанныеПараметры = ЧтениеПараметров.Прочитать( файлПараметров );
	
// прочитанныеПараметры["парам.Число"] = 100;
// прочитанныеПараметры["парам.Подстановка1"] = "999+100+100";
// прочитанныеПараметры["парам.Подстановка2"]  "0+999+100+100+100";	

Обработка ошибок

Модуль не генерирует исключений и не выводит никаких сообщений. Если переданный файл не удалось прочитать или распарсить, то ошибка об этом вернется вторым параметром ошибкиЧтения. Это соответствие, где ключ - путь к файлу, значение - описание ошибки.

Примеры использования

ОСкрипты для деплоя и копирования базы данных и они же на github

About

Чтение параметров из json файла

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • 1C Enterprise 100.0%