2017 © Pedro Peláez
 

project jsonpath

Library to use JsonPath

image

peekmo/jsonpath

Library to use JsonPath

  • Thursday, April 30, 2015
  • by Peekmo
  • Repository
  • 10 Watchers
  • 58 Stars
  • 369,822 Installations
  • PHP
  • 11 Dependents
  • 0 Suggesters
  • 25 Forks
  • 7 Open issues
  • 6 Versions
  • 13 % Grown

The README.md

JsonPath

Bitdeli Badge, (*1)

JsonPath utility (XPath for JSON) for PHP based on Stefan Goessner's implementation : http://code.google.com/p/jsonpath/, (*2)

C php extension is in progress here, any help is welcome :), (*3)

Documentation

What is JsonPath ? What is the syntax ? Take a look to Stefan Goessner's documentation, (*4)

Installation

  • That's simple ! Add this to your composer.json :
    "require": {
        "peekmo/jsonpath": "dev-master"
    }

You just have to require the vendor/autoload.php (if not already) and add the following use :, (*5)

``` php use Peekmo\JsonPath\JsonStore;, (*6)


## How it works ? ## /!\ API Breaking Changes with new version ! Consider this json : { "store": { "book": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 }, { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 }, { "category": "fiction", "author": "Herman Melville", "title": "Moby Dick", "isbn": "0-553-21311-3", "price": 8.99 }, { "category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22.99 } ], "bicycle": { "color": "red", "price": 19.95 } } } - Transform your json into **array** (it works with object, but use an array for better performances) - You can get values like this : ``` php get("$..book[?(@.isbn)].category"); $res = $store->get("$..book[?(@.isbn)].category", true); // You can set true to get only unique results ?>

It returns an array, you can so use default functions on the result (Have unique key for example) From 1.1.0, it returns an empty array if the node does not exists, (*7)

  • You can change a value like this :

``` php set("$..book[0].category", "superCategory"); echo $store->toString(); ?>, (*8)


The value is passed by reference, so, when you are using a set, your object "$o" is modified. It returns a boolean to know if the node has been modified or not - You can add a value like this : ``` php add("$..book[0]", "value", "key"); echo $store->toString(); ?>

The parameter "key" is optional, a number will be set if you're not providing one. It returns a boolean to know if the node has been modified or not, (*9)

  • You can remove an attribute like this :

php remove("$..book.*.category"); echo $store->toString(); ?>, (*10)

Thanks

  • Special thanks to Stefan Goessner for his previous work

The Versions

30/04 2015

dev-master

9999999-dev https://github.com/Peekmo/JsonPath

Library to use JsonPath

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

The Development Requires

by Stefan Goessner
by Axel Anceau

16/09 2014

v2.0-ALPHA

2.0.0.0-alpha https://github.com/Peekmo/JsonPath

Library to use JsonPath

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

The Development Requires

by Stefan Goessner
by Axel Anceau

16/09 2014

2.x-dev

2.9999999.9999999.9999999-dev https://github.com/Peekmo/JsonPath

Library to use JsonPath

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

The Development Requires

by Stefan Goessner
by Axel Anceau

18/05 2014

1.1.0

1.1.0.0 https://github.com/Peekmo/JsonPath

Library to use JsonPath

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

by Stefan Goessner
by Axel Anceau

11/04 2014

1.0.0

1.0.0.0 https://github.com/Peekmo/JsonPath

Library to use JsonPath

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

by Stefan Goessner
by Axel Anceau

26/10 2013

dev-develop

dev-develop https://github.com/Peekmo/JsonPath

Library to use JsonPath

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

by Stefan Goessner
by Axel Anceau