Язык программирования Перфолента.Net - Официальный сайт

 Язык программирования Перфолента.Net - Официальный сайт.

Поиск   
Главная :: О проекте :: Контакты :: Обратная связь :: Благодарности :: ВходГость

   >   >   > 


Примеры по стандартной библиотеке

Пример программы на языке программирования Перфолента.Net:

  • Работа с JSON
    • ИзвлечениеДанныхJSON.пфл


#ТипСборки КонсольноеПриложение
#ИспользоватьСтандартнуюБиблиотеку
ИмпортИмён Промкод.Перфолента.Консоль
//***************************
Программа ТестКлассаИзвлечениеДанныхJSON 
    //---------------------------
    Процедура Старт
 
 
        // Метод Выбрать объекта ИзвлечениеДанныхJSON осуществляет выборку данных по указанному пути или соответствующих указанному шаблону.
        // Можно использовать следующие символы подстановки:
        // $ - корневой элемент. Большинство шаблонов начинаются с этого символа.
        // @ - текущий элемент.
        // . или [] - вложенный элемент.
        // .. - пропуск вложенного элемента.
        // * - любой элемент.
        // [,] - через запятую в квадратных скобках можно указать индексы массива или альтернативные имена.
        // [Старт:Стоп:Шаг] - срезы массивов.
        // ?() - указание вычисляемых выражений отбора.
        // Примеры:
        // $.Полка.Книга[*].Автор - выбирает авторов всех книг на полке.
        // $..Авторы - выбирает всех авторов.
        // $.Полка.* - выбирает все элементы на полке.
        // $.Полка..Цена - выбирает цены всего, что лежит на полке.
        // $..Книга[2] - выбирает информацию о третьей книге.
        // $..Книга[-1:] - выбирает последнюю книгу.
        // $..Книга[0,1] или $..Книга[:2] - первые две книги.
        // $..Книга[?(@.Цена<10)] - книга, которая стоит меньше 10 рублей.

 
 
        СтрокаJSON = "[{""Имя"":""Вася"",""Пол"":""Мужской"",""Возраст"":29},{""Имя"":""Люба"",""Пол"":""Женский"",""Возраст"":30}]";
        
        ИзвлечениеДанных = Новый ИзвлечениеДанныхJSON();
        
        ИзвлечениеДанных.УстановитьСтроку(СтрокаJSON);
        
        Результат = ИзвлечениеДанных.Выбрать("$..Имя");
        ВыводСтроки ТипЗнчСтр(Результат)
        Сообщить(Результат);
        // [
        //   "Вася",
        //   "Люба"
        // ]
        
        Результат = ИзвлечениеДанных.Выбрать("$..[?(@.Возраст >= 30)].Имя");
        ВыводСтроки ТипЗнчСтр(Результат)
        Сообщить(Результат);
        // "Люба"    
        
        //===================================
        
        ВыводСтроки "Количество"
        Результат = ИзвлечениеДанных.Выбрать("$..Возраст.Длина()");
        Сообщить(Результат); // 2
        
        ВыводСтроки "Сумма"
        Результат = ИзвлечениеДанных.Выбрать("$..Возраст.Сумма()");
        Сообщить(Результат); // 59
        
        ВыводСтроки "Среднее"
        Результат = ИзвлечениеДанных.Выбрать("$..Возраст.Среднее()");
        Сообщить(Результат); // 29.5
        
        ВыводСтроки "Минимум"
        Результат = ИзвлечениеДанных.Выбрать("$..Возраст.Мин()");
        Сообщить(Результат); // 29
        
        ВыводСтроки "Максимум"
        Результат = ИзвлечениеДанных.Выбрать("$..Возраст.Макс()");
        Сообщить(Результат); // 30
        
        ВыводСтроки "Первое"
        Результат = ИзвлечениеДанных.Выбрать("$[*].Первое()");
        Сообщить(Результат); // {"Имя": "Вася", "Пол": "Мужской", "Возраст": 29}
        
        ВыводСтроки "Последнее"
        Результат = ИзвлечениеДанных.Выбрать("$[*].Последнее()");
        Сообщить(Результат); // {"Имя": "Люба", "Пол": "Женский", "Возраст": 30}
        
        //?????????????? ПОКА НЕ РЕАЛИЗОВАНО
        //ВыводСтроки "Ключи"
        //Результат = ИзвлечениеДанных.Выбрать("$..[?(@.Возраст >= 30)].Ключи()")
        //ВыводСтроки ТипЗнчСтр(Результат)
        //Сообщить(Результат); // ["Имя", "Пол", "Возраст"]  
        //ВыводСтроки "Значения"
        //Результат = ИзвлечениеДанных.Выбрать("$..[?(@.Возраст >= 30)].Значения()")
        //ВыводСтроки ТипЗнчСтр(Результат)
        //Сообщить(Результат); // ["Имя", "Пол", "Возраст"]  
        
        //====================================================
        //Запишем JSON в файл
        ФС.ЗаписатьТекст("inputFile.json",СтрокаJSON)
        
        //====================================================
        //Чтение из файла
        
        ИмяВходящегоФайла = "inputFile.json";
       
        ИзвлечениеДанных = Новый ИзвлечениеДанныхJSON();
        
        ИзвлечениеДанных.ОткрытьФайл(ИмяВходящегоФайла);
        
        Результат = ИзвлечениеДанных.Выбрать("$[0].Пол");
        Сообщить(Результат);
        // "Мужской"

        //====================================================
        //Чтение из потока
        
        ИзвлечениеДанных = Новый ИзвлечениеДанныхJSON();

        Поток = Новый ФайловыйПоток(ИмяВходящегоФайла, РежимОткрытияФайла.Открыть);

        ИзвлечениеДанных.ОткрытьПоток(Поток, КодировкаТекста.UTF8);

        Результат = ИзвлечениеДанных.Выбрать("$[1].Пол");
        Сообщить(Результат);
        // "Женский"       
        
        Пауза
        
    КонецПроцедуры
КонецПрограммы    

К началу статьи


Вернуться в раздел:
Примеры по стандартной библиотеке

Перейти в раздел:
Примеры
  Поддержи проект!

Вы можете поддержать разработку Перфоленты, перечислив любую удобную сумму, которая пойдет на развитие языка и поддержку инфраструктуры сайта.

  Новости:
      07.06.2025 Небольшие дополнения к документации на сайте - описание атрибута поля &Атомарное
      09.05.2025 На сайте опубликован релиз 0.4.16.0_SE дистрибутива языка программирования Перфолента.Net
      27.04.2025 Дополнена статья про циклы
      04.01.2025 Опубликован новый релиз дистрибутива языка программирования Перфолента.Net версии 0.4.15.0_CE
      23.09.2024 Опубликована новая статья: "Конструируем класс. Делегаты."
      30.08.2024 Опубликован новый релиз дистрибутива языка программирования Перфолента.Net версии 0.4.14.0
      24.05.2024 Обновлён справочный раздел сайта
      01.07.2023 Новая версия 0.4.13.0 языка программирования Перфолента.Net
       Все новости