Skip to content

JSON encoder that is compliant with MongoDB Extended JSON

Notifications You must be signed in to change notification settings

mtrbean/MongoJson

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MongoJson

A small library that JSON encode an Mongo document that contains MongoDB-specific types (e.g. MongoDate).

If you just use json_encode(), you will get some PHP specific results that makes it very difficult to interface with other part of your program. This library attempts to implement the 'strict mode' and also the 'javascript (JSONP) mode' defined in https://docs.mongodb.org/manual/reference/mongodb-extended-json/

Installation using Composer

Create a composer.json file in your project root:

{
    "require": {
        "mtrbean/mongo-json": "1.*"
    }
}

Install via composer:

php composer.phar install

P.S. If you haven't already been using composer for managing your dependency, you can install it via:

curl -sS https://getcomposer.org/installer | php

Autoload

You can have the class MongoJson autoloaded using the mechanism provided by composer:

require 'vendor/autoload.php';

Usage

Strict Mode

$doc = array("dt" => new MongoDate);
echo MongoJson::strict($doc);

will print:

{"dt":{"$date":1371525158000}}

Extended Mode

$doc = array("dt" => new MongoDate);
echo MongoJson::extended($doc);

will print:

{"dt":new Date(1371525158000)}

Options

You can pass extra options that you can normally use with json_encode()

$doc = array("_id" => new MongoId, "regex" => new MongoRegex('/^acme.*corp/i'));
echo MongoJson::extended($doc, JSON_PRETTY_PRINT); // will prettify the JSON string

will print:

{
    "_id": {
        "$oid": "51bfcdd71ede01d61a000000"
    },
    "regex": /^acme.*corp/i
}

License

MIT

Contribute

Feel free to fork and submit pull requests!

About

JSON encoder that is compliant with MongoDB Extended JSON

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages