jexпакет
с апстрима
Пакет лежит в основном пуле хаба: короткой формы достаточно, если хаб прописан сервером пакетов в opm.cfg.
opm install jexУстановка на opm младше 1.7.0
Легаси-флоу. Клиент младше 1.7.0 адрес пула в аргументе не разбирает: пул сначала прописывают сервером пакетов, и только потом ставят через него. На 1.7.0 и новее этот раздел не нужен — хватает команды из шапки страницы.
Добавьте пул сервером пакетов в opm.cfg. Порт продублирован в «Сервер»: у opm push поле «Порт» не читается.
{
"СервераПакетов": [
{
"Имя": "default",
"Сервер": "https://hub.1cdevelopers.ru",
"Порт": 443,
"ПутьНаСервере": "/api/v1/pools/default/download/",
"РесурсПубликацииПакетов": "/api/v1/pools/default/push",
"Приоритет": 1
}
]
}И ставьте пакет, указывая сервер:
opm install -m default jexОписание
JSON data extraction application (jex)
Приложение для извлечения данных из строк и файлов JSON с помощью запросов JSON-path
<a id="Зависимости"></a> Требуются следующие библиотеки и инструменты
<a id="Приложение"></a> Команды приложения
select - Извлечь данные из строки, файла или входящего потока JSON
| Параметры: | |
|---|---|
| --data | - Строка JSON или путь к файлу JSON для извлечения данных |
| --path | - Запрос в формате JSON-path |
| --encoding | - Кодировка входящих данных (не используется при извлечении данных из строк) (по умолчанию: UTF-8) |
Пример
rem Извлечение данных из строки JSON
jex select --data "{'Ключ':'Значение'}" --path "$.Ключ"
rem Извлечение данных из файла JSON
jex select --data "d:\tmp\MyDataFile.json" --path "$.Ключ" --encoding UTF-8
rem Извлечение данных из потока ввода
echo {"Ключ":"Значение"} | jex select --path "$.Ключ"
<a id="Библиотека"></a> Прграммный интерфейс библиотеки (API)
Модуль ИзвлечениеДанных
Функция Выбрать() - извлекает данные из JSON-строки, файла или потока по указанному выражению JSON-path
| Параметры: | ||
|---|---|---|
| ДанныеJSON | Строка, Поток | JSON-строка, путь к JSON-файлу или поток |
| Путь | Строка | выражение JSON-path для извлечения данных |
| Кодировка | Строка | используемая кодировка данных (не используется при извлечении данных из строк) |
| ИзвлекатьЕдинственноеЗначение | Булево | Если результирующий массив содержит единственное значение, то: Истина - будет возвращено значение; Ложь - будет возвращен массив. |
| JSONКакТекст | Булево | Истина - если результатом извлечения данных является JSON объект, результат будет возвращен в виде строки JSON;Ложь - результат будет возвращен в виде массива или соответствия |
#Использовать jex
СтрокаJSON = "[{""Имя"":""Вася"",""Пол"":""Мужской"",""Возраст"":29},
|{""Имя"":""Люба"",""Пол"":""Женский"",""Возраст"":30}]";
Результат = ИзвлечениеДанныхJSON.Выбрать(СтрокаJSON, "$..[?(@.Возраст >= 30)].Имя");