byjg/anydataset-json

Anydataset JSON抽象。Anydataset是PHP中的无源数据抽象层。

4.9.2 2024-09-11 23:43 UTC

This package is auto-updated.

Last update: 2024-09-12 00:24:16 UTC


README

Build Status Opensource ByJG GitHub source GitHub license GitHub release

JSON抽象数据集。Anydataset是PHP中的无源数据抽象层。

更多关于Anydataset的信息在这里

概念

AnyDataset-Json是一个抽象层,用于读取JSON数据并将其转换为数据集,您可以将它当作表格来操作。

一些功能

  • 读取JSON文件或字符串
  • 定义和提取字段
  • 验证一些元素,例如是否必需、数据类型等

示例

example.json

{
   "menu":{
      "header":"SVG Viewer",
      "items":[
         {
            "id":"Open",
            "metadata":{
               "version":"1",
               "date":"NA"
            }
         },
         {
            "id":"OpenNew",
            "label":"Open New",
            "metadata":{
               "version":"2",
               "date":"2021-10-01"
            }
         }
      ]
   }
}

example.php

$json = file_get_contents('example.json');

$dataset = new \ByJG\AnyDataset\Json\JsonDataset($json);

$iterator = $dataset->getIterator("/menu/items")
                        ->withFields([
                            JsonFieldDefinition::create("name", "id"),
                            JsonFieldDefinition::create("version", "metadata/version")
                        ]);

foreach ($iterator as $row) {
    echo $row->get('name');       // Print "Open", "OpenNew"
    echo $row->get('version');    // Print "1", "2"
}

功能

安装

composer require "byjg/anydataset-json"

运行单元测试

vendor/bin/phpunit

依赖关系

开源ByJG