{"id":20019735,"url":"https://github.com/arkuznetsov/jex","last_synced_at":"2025-05-04T23:32:09.044Z","repository":{"id":111474748,"uuid":"536764085","full_name":"arkuznetsov/jex","owner":"arkuznetsov","description":"Приложение для извлечения данных из строк и файлов JSON с помощью запросов JSON-path","archived":false,"fork":false,"pushed_at":"2022-12-19T06:28:31.000Z","size":36,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2025-04-08T14:12:13.272Z","etag":null,"topics":["bsl","cli","json","onescript","oscript"],"latest_commit_sha":null,"homepage":"","language":"1C Enterprise","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arkuznetsov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-14T21:24:07.000Z","updated_at":"2023-08-04T09:43:26.000Z","dependencies_parsed_at":"2023-04-06T08:06:06.968Z","dependency_job_id":null,"html_url":"https://github.com/arkuznetsov/jex","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkuznetsov%2Fjex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkuznetsov%2Fjex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkuznetsov%2Fjex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkuznetsov%2Fjex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arkuznetsov","download_url":"https://codeload.github.com/arkuznetsov/jex/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252414482,"owners_count":21744111,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bsl","cli","json","onescript","oscript"],"created_at":"2024-11-13T08:28:34.630Z","updated_at":"2025-05-04T23:32:09.037Z","avatar_url":"https://github.com/arkuznetsov.png","language":"1C Enterprise","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![GitHub release](https://img.shields.io/github/release/ArKuznetsov/jex.svg?style=flat-square)](https://github.com/ArKuznetsov/jex/releases)\r\n[![GitHub license](https://img.shields.io/github/license/ArKuznetsov/jex.svg?style=flat-square)](https://github.com/ArKuznetsov/jex/blob/develop/LICENSE)\r\n[![GitHub Releases](https://img.shields.io/github/downloads/ArKuznetsov/jex/latest/total?style=flat-square)](https://github.com/ArKuznetsov/jex/releases)\r\n[![GitHub All Releases](https://img.shields.io/github/downloads/ArKuznetsov/jex/total?style=flat-square)](https://github.com/ArKuznetsov/jex/releases)\r\n\r\n[![Build Status](https://img.shields.io/github/workflow/status/ArKuznetsov/jex/%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8C%20%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B0)](https://github.com/arkuznetsov/jex/actions/)\r\n[![Quality Gate](https://open.checkbsl.org/api/project_badges/measure?project=jex\u0026metric=alert_status)](https://open.checkbsl.org/dashboard/index/jex)\r\n[![Coverage](https://open.checkbsl.org/api/project_badges/measure?project=jex\u0026metric=coverage)](https://open.checkbsl.org/dashboard/index/jex)\r\n[![Tech debt](https://open.checkbsl.org/api/project_badges/measure?project=jex\u0026metric=sqale_index)](https://open.checkbsl.org/dashboard/index/jex)\r\n\r\n\u003ca href=\"https://checkbsl.org\"\u003e\u003cimg alt=\"Checked by Silver Bulleters SonarQube BSL plugin\" src=\"https://web-files.do.bit-erp.ru/sonar/b_t.png\" align=\"right\" style=\"width:400px\"/\u003e\u003c/a\u003e\r\n\r\n# JSON data extraction application (jex)\r\n\r\nПриложение для извлечения данных из строк и файлов JSON с помощью запросов JSON-path\r\n\r\n* [Зависимости](#Зависимости)\r\n* [Команды приложения](#Приложение)\r\n* [Библиотека](#Библиотека)\r\n\r\n## \u003ca id=\"Зависимости\"\u003e\u003c/a\u003e Требуются следующие библиотеки и инструменты\r\n\r\n* [jexlib](https://github.com/ArKuznetsov/jexlib)\r\n* [logos](https://github.com/oscript-library/logos)\r\n* [cli](https://github.com/Stepa86/cli)\r\n\r\n## \u003ca id=\"Приложение\"\u003e\u003c/a\u003e Команды приложения\r\n\r\n---\r\n\r\n## select - Извлечь данные из строки, файла или входящего потока JSON\r\n\r\n| Параметры: ||\r\n|-|-|\r\n| **--data** | - Строка JSON или путь к файлу JSON для извлечения данных |\r\n| **--path** | - Запрос в формате JSON-path |\r\n| **--encoding** | - Кодировка входящих данных (не используется при извлечении данных из строк) (по умолчанию: UTF-8) |\r\n\r\n#### Пример\r\n\r\n```bat\r\nrem Извлечение данных из строки JSON\r\njex select --data \"{'Ключ':'Значение'}\" --path \"$.Ключ\"\r\n```\r\n\r\n```bat\r\nrem Извлечение данных из файла JSON\r\njex select --data \"d:\\tmp\\MyDataFile.json\" --path \"$.Ключ\" --encoding UTF-8\r\n```\r\n\r\n```bat\r\nrem Извлечение данных из потока ввода\r\necho {\"Ключ\":\"Значение\"} | jex select --path \"$.Ключ\"\r\n```\r\n\r\n## \u003ca id=\"Библиотека\"\u003e\u003c/a\u003e Прграммный интерфейс библиотеки (API)\r\n\r\n---\r\n\r\n### Модуль ИзвлечениеДанных\r\n\r\n#### **Функция Выбрать()** - извлекает данные из JSON-строки, файла или потока по указанному выражению JSON-path\r\n\r\n| Параметры: |||\r\n|-|-|-|\r\n| ДанныеJSON | Строка, Поток | JSON-строка, путь к JSON-файлу или поток |\r\n| Путь | Строка | выражение JSON-path для извлечения данных |\r\n| Кодировка | Строка | используемая кодировка данных (не используется при извлечении данных из строк) |\r\n| ИзвлекатьЕдинственноеЗначение | Булево | Если результирующий массив содержит единственное значение, то: Истина -  будет возвращено значение; Ложь - будет возвращен массив. |\r\n| JSONКакТекст | Булево | Истина - если результатом извлечения данных является JSON объект, результат будет возвращен в виде строки JSON;Ложь - результат будет возвращен в виде массива или соответствия |\r\n\r\n```bsl\r\n#Использовать jex\r\n\r\nСтрокаJSON = \"[{\"\"Имя\"\":\"\"Вася\"\",\"\"Пол\"\":\"\"Мужской\"\",\"\"Возраст\"\":29},\r\n             |{\"\"Имя\"\":\"\"Люба\"\",\"\"Пол\"\":\"\"Женский\"\",\"\"Возраст\"\":30}]\";\r\n\r\nРезультат = ИзвлечениеДанныхJSON.Выбрать(СтрокаJSON, \"$..[?(@.Возраст \u003e= 30)].Имя\");\r\n\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkuznetsov%2Fjex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farkuznetsov%2Fjex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkuznetsov%2Fjex/lists"}