This library is a port of google/gson written in PHP. Its purpose is to easily handle the conversion between PHP objects and JSON. It shares some of google/gson's goals such as:
toJson
and fromJson
methodsAnd in addition:
Here are some simple use cases to get a feel for how the library works
If you have a PHP object you want to convert to JSON
// $object obtained elsewhere
$gson = Gson::builder()->build();
$json = $gson->toJson($object);
What this is doing is using the provided GsonBuilder
to set up the
Gson
object with sensible defaults. Calling Gson::toJson
and
passing in an object will return a string of JSON.
If you need to, you can force the type Gson will use to serialize
// $object obtained elsewhere
$gson = Gson::builder()->build();
$json = $gson->toJson($object, MyCustomClass::class);
The reverse is very similar
// $json obtained elsewhere
$gson = Gson::builder()->build();
$fooObject = $gson->fromJson($json, Foo::class);
Now we call Gson::fromJson
and pass in the json as a string and the type
of object we'd like to map to. In this example, we will be getting
an instantiated Foo
object back.
Gson has a concept of "normalized" forms. This just means data that has
been decoded with json_decode
, or can be passed into json_encode
.
// $object obtained elsewhere
$gson = Gson::builder()->build();
$jsonArray = $gson->toNormalized($object);
$object = $gson->fromNormalized($jsonArray, Foo::class);
This library requires PHP 7.1
composer require tebru/gson-php
Be sure and set up the annotation loader in one of your initial scripts.
\Doctrine\Common\Annotations\AnnotationRegistry::registerLoader('class_exists');
This project is licensed under the MIT license. Please see the LICENSE
file for more information.