estahn / json-query-wrapper
jq的包装器,一个轻量级且灵活的命令行JSON处理器
v1.0.0
2021-01-11 23:19 UTC
Requires
- php: ^7.1|^8
- symfony/process: ^4|^5
Requires (Dev)
- phpunit/phpunit: ^7|^8|^9
- vimeo/psalm: 4.x-dev
- dev-master
- v1.0.0
- v0.2.1
- v0.2.0
- v0.1.2
- v0.1.1
- v0.1.0
- dev-renovate/phpunit-phpunit-10.x
- dev-renovate/github-codeql-action-3.x
- dev-renovate/major-symfony
- dev-renovate/actions-checkout-4.x
- dev-renovate/php-actions-phpunit-3.x
- dev-renovate/github-codeql-action-2.x
- dev-renovate/actions-cache-3.x
- dev-renovate/actions-checkout-3.x
- dev-renovate/php-actions-phpunit-9.x
- dev-renovate/php-actions-composer-6.x
This package is not auto-updated.
Last update: 2024-09-14 18:20:40 UTC
README
json-query-wrapper是流行的命令行JSON处理器"jq"的包装器。
特性
- 易于使用的界面
- PHP数据类型映射
安装
$ composer require estahn/json-query-wrapper
使用
基本使用
test.json
:
{ "Foo": { "Bar": "33" } }
示例 1
$jq = JsonQueryWrapper\JsonQueryFactory::createWith('test.json'); $jq->run('.Foo.Bar'); # string(33)
示例 2
$jq = JsonQueryWrapper\JsonQueryFactory::createWith('test.json'); $jq->run('.Foo.Bar == "33"'); # Returns bool(true)
示例 3
$jq = JsonQueryWrapper\JsonQueryFactory::createWith('{"Foo":{"Bar":"33"}}'); $jq->run('.Foo.Bar == "33"'); # Returns bool(true)
高级使用
示例 1
$jq = JsonQueryWrapper\JsonQueryFactory::create(); $jq->setDataProvider(new JsonQueryWrapper\DataProvider\File('test.json'); $jq->run('.Foo.Bar == "33"'); # Returns bool(true)
数据提供者
A "数据提供者"为包装器提供必要的读取数据。它是一组提供者的通用接口。所有提供者都实现了DataProviderInterface
,该接口本质上返回一个指向文件的路径用于jq
。
可用的提供者
Text
- 包含JSON数据的常规PHP字符串File
- 包含JSON数据的文件的路径
徽章狂热
替代方案
- jmespath.php - 在PHP中以声明方式指定如何从JSON文档中提取元素
- JSONPath - 基于Stefan Goessner的JSONPath脚本的PHP JSONPath实现