estahn/json-query-wrapper

jq的包装器,一个轻量级且灵活的命令行JSON处理器

v1.0.0 2021-01-11 23:19 UTC

README

Latest Stable Version Total Downloads Dependency Status SensioLabsInsight Build Status StyleCI

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数据的文件的路径

徽章狂热

Build Status Scrutinizer Code Quality Code Coverage Codacy Badge Codacy Badge

替代方案

  • jmespath.php - 在PHP中以声明方式指定如何从JSON文档中提取元素
  • JSONPath - 基于Stefan Goessner的JSONPath脚本的PHP JSONPath实现