<commit_before># JSON Pointer for PHP

[![Build Status](https://secure.travis-ci.org/raphaelstolt/php-jsonpointer.png)](http://travis-ci.org/raphaelstolt/php-jsonpointer)

This is an implementation of [JSON Pointer](http://tools.ietf.org/html/draft-pbryan-zyp-json-pointer-00) written in PHP. Triggered by @janl's node.js [implementation](https://github.com/janl/node-jsonpointer) and being a bit bored.

## Usage

    <?php
    require_once 'src/JsonPointer/JsonPointer.php';

    use JsonPointer\JsonPointer;

    $json = '{"foo":1,"bar":{"baz":2},"qux":[3,4,5]}';
    $jsonPointer = new JsonPointer($json);

    $all = $jsonPointer->get("/"); // string('{"foo":1,"bar":{"baz":2},"qux":[3,4,5]}')
    $one = $jsonPointer->get("/foo"); // int(1)
    $two = $jsonPointer->get("/bar/baz"); // int(2)
    $three = $jsonPointer->get("/qux/0"); // int(3)
    $five = $jsonPointer->get("/qux/2"); // int(5)
    $null = $jsonPointer->get("/qux/7"); // null

    $one = $jsonPointer->set("/foo", "something"); // int(1) + json.foo = 'something'
    $something = $jsonPointer->get("/foo"); // string('something')
    $something = $jsonPointer->set("/foo"); // string('something') + json.foo is unset/removed
    $something = $jsonPointer->get("/foo"); // null

    $all = $jsonPointer->get("/"); // string('{"bar":{"baz":2},"qux":[3,4,5]}')


## Installation and usage via [Composer](http://packagist.org/about-composer)

Download the [`composer.phar`](http://getcomposer.org/composer.phar) executable

Create/modify **composer.json** in the *your* projects \_\_ROOT_DIRECTORY__ by adding the `php-jsonpointer` dependency. 
    
    {
        "require": {
            "php-jsonpointer/php-jsonpointer": "master-dev"
        }
    }

Run Composer: `php composer.phar install` or `php composer.phar update`

Use JSON Pointer via the available Composer **autoload file**.

    <?php
    require_once 'vendor/.composer/autoload.php';

    use JsonPointer\JsonPointer;

    $json = '{"foo":1,"bar":{"baz":2},"qux":[3,4,5]}';
    $jsonPointer = new JsonPointer($json);

    $all = $jsonPointer->get("/"); // string('{"foo":1,"bar":{"baz":2},"qux":[3,4,5]}')

## Testing

    $ phpunit --configuration phpunit.xml.dist
    OK (42 tests, 77 assertions)
    $
    
## Author

(c) 2011-2012 <NAME> \<<EMAIL>\>

## License

Doowutchyalikewithit License.<commit_msg>Applied new composer autoload location<commit_after># JSON Pointer for PHP

[![Build Status](https://secure.travis-ci.org/raphaelstolt/php-jsonpointer.png)](http://travis-ci.org/raphaelstolt/php-jsonpointer)

This is an implementation of [JSON Pointer](http://tools.ietf.org/html/draft-pbryan-zyp-json-pointer-00) written in PHP. Triggered by @janl's node.js [implementation](https://github.com/janl/node-jsonpointer) and being a bit bored.

## Usage

    <?php
    require_once 'src/JsonPointer/JsonPointer.php';

    use JsonPointer\JsonPointer;

    $json = '{"foo":1,"bar":{"baz":2},"qux":[3,4,5]}';
    $jsonPointer = new JsonPointer($json);

    $all = $jsonPointer->get("/"); // string('{"foo":1,"bar":{"baz":2},"qux":[3,4,5]}')
    $one = $jsonPointer->get("/foo"); // int(1)
    $two = $jsonPointer->get("/bar/baz"); // int(2)
    $three = $jsonPointer->get("/qux/0"); // int(3)
    $five = $jsonPointer->get("/qux/2"); // int(5)
    $null = $jsonPointer->get("/qux/7"); // null

    $one = $jsonPointer->set("/foo", "something"); // int(1) + json.foo = 'something'
    $something = $jsonPointer->get("/foo"); // string('something')
    $something = $jsonPointer->set("/foo"); // string('something') + json.foo is unset/removed
    $something = $jsonPointer->get("/foo"); // null

    $all = $jsonPointer->get("/"); // string('{"bar":{"baz":2},"qux":[3,4,5]}')


## Installation and usage via [Composer](http://packagist.org/about-composer)

Download the [`composer.phar`](http://getcomposer.org/composer.phar) executable

Create/modify **composer.json** in the *your* projects \_\_ROOT_DIRECTORY__ by adding the `php-jsonpointer` dependency. 
    
    {
        "require": {
            "php-jsonpointer/php-jsonpointer": "master-dev"
        }
    }

Run Composer: `php composer.phar install` or `php composer.phar update`

Use JSON Pointer via the available Composer **autoload file**.

    <?php
    require_once 'vendor/autoload.php';

    use JsonPointer\JsonPointer;

    $json = '{"foo":1,"bar":{"baz":2},"qux":[3,4,5]}';
    $jsonPointer = new JsonPointer($json);

    $all = $jsonPointer->get("/"); // string('{"foo":1,"bar":{"baz":2},"qux":[3,4,5]}')

## Testing

    $ phpunit --configuration phpunit.xml.dist
    OK (42 tests, 77 assertions)
    $
    
## Author

(c) 2011-2012 <NAME> \<<EMAIL>\>

## License

Doowutchyalikewithit License.
{'fraction_non_alphanumeric': 0.21584873592521775, 'fraction_numerical': 0.01954535797748035, 'mean_word_length': 3.7603640040444892, 'pattern_counts': {'":': 42, '<': 13, '<?xml version=': 0, '>': 33, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '152335', 'n_tokens_mistral': 1708, 'n_tokens_neox': 1616, 'n_words': 301}