Skip to content

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

License

Notifications You must be signed in to change notification settings

byjg/php-anydataset-json

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AnyDataset-Json

Build Status Opensource ByJG GitHub source GitHub license GitHub release

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
Loading

Open source ByJG

About

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

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages