Примеры по стандартной библиотеке
Пример программы на языке программирования Перфолента.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].Пол");
Сообщить(Результат);
// "Женский"
Пауза
КонецПроцедуры
КонецПрограммы

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