Чтение параметров из json файла
Читает параметры из файла json и возвращает соответствие параметров. Параметры читаются рекурсивно, т.е. если в файле указана структура, в ней структура, а уже в ней п1 = 100, то в соответствии будет прочитанныеПараметры["п1"] = 100
записьТекста=Новый ЗаписьТекста(файлПараметров);
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число"": 100, ""парам.Строка"": ""100"", ""парам.Булево"": true}" );
ЗаписьТекста.Закрыть();ошибкиЧтения=Неопределено;прочитанныеПараметры= ЧтениеПараметров.Прочитать( файлПараметров, ошибкиЧтения );// ТипЗнч(прочитанныеПараметры) = Тип("Соответствие");// прочитанныеПараметры.Количество() = 3;// ТипЗнч(ошибкиЧтения) = Тип("Соответствие");// ошибкиЧтения.Количество() = 0;// прочитанныеПараметры["парам.Число"] = 100;// прочитанныеПараметры["парам.Строка"] = "100";// прочитанныеПараметры["парам.Булево"] = Истина;Так же на вход можно подавать файл (Новый файл()) массив файлов, массив путей к файлам.
Если ничего не указывать в качестве пути, то будет прочитан файл param_os.json из текущего каталога.
файлПараметров = ОбъединитьПути( ТекущийКаталог(), "param_os.json");
записьТекста = Новый ЗаписьТекста(файлПараметров);
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число"": 100, ""парам.Строка"": ""100"", ""парам.Булево"": true}" );
ЗаписьТекста.Закрыть();
прочитанныеПараметры = ЧтениеПараметров.Прочитать();
Если указать в файле параметров имя параметра, которое начинается с ReadFile, а в значении путь к файлу (в том числе относительно этого файла), то будут прочитан так же и указанный файл.
путь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");Если для какого-либо параметра в качестве значения используется шаблон %ИмяПараметра%, то в прочитанных параметрах будет предпринята попытка подменить этот шаблон на соответствующее значение
записьТекста=Новый ЗаписьТекста(файлПараметров);
ЗаписьТекста.ЗаписатьСтроку( "{""парам.Число"": 100, |""парам.Подстановка1"": ""999+%парам.Число%+%парам.Число%"", |""парам.Подстановка2"": ""0+%парам.Подстановка1%+%парам.Число%"" |}" );
ЗаписьТекста.Закрыть();прочитанныеПараметры= ЧтениеПараметров.Прочитать( файлПараметров );// прочитанныеПараметры["парам.Число"] = 100;// прочитанныеПараметры["парам.Подстановка1"] = "999+100+100";// прочитанныеПараметры["парам.Подстановка2"] "0+999+100+100+100"; Модуль не генерирует исключений и не выводит никаких сообщений. Если переданный файл не удалось прочитать или распарсить, то ошибка об этом вернется вторым параметром ошибкиЧтения. Это соответствие, где ключ - путь к файлу, значение - описание ошибки.
ОСкрипты для деплоя и копирования базы данных и они же на github