php-anydataset-json

Anydataset JSON abstraction. Anydataset is an agnostic data source abstraction layer in PHP.

MIT License

Downloads
1.5K
Stars
3
Committers
1

AnyDataset-Json

JSON abstraction dataset. Anydataset is an agnostic data source abstraction layer in PHP.

See more about Anydataset here.

Concept

The AnyDataset-Json is an abstraction layer to read a JSON data and transform it into a dataset, and you can manipulate it as a table.

Some features:

  • Read a JSON file or string
  • Define and extract fields
  • Validate some elements such as if is required or not, datatype, etc

Example

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"
}

Features

Install

composer require "byjg/anydataset-json"

Running the Unit tests

vendor/bin/phpunit

Dependencies

flowchart TD
    byjg/anydataset-json --> byjg/anydataset
    byjg/anydataset-json --> ext-json

Open source ByJG