This is a library to serialize PHP variables in JSON format. It is similar of the serialize()
function in PHP,
but the output is a string JSON encoded. You can also unserialize the JSON generated by this tool and have you
PHP content back.
Supported features:
- Encode/Decode of scalar, null, array
- Encode/Decode of objects
- Support nested serialization
- Support not declared properties on the original class definition (ie, properties in
stdClass
) - Support object recursion
Unsupported serialization content:
- Resource (ie,
fopen()
response) - Closures
- Binary String or malformed UTF8 strings (ie, resulsts from
SELECT AES_ENCRYPT(:content, :key) as encrypted
)- These strings will need to be properly handled by converting to hex using
bin2hex
orutf8_encode
in the__sleep()
method
- These strings will need to be properly handled by converting to hex using
This project should not be confused with JsonSerializable
interface from PHP 5.4. This interface is used on
json_encode
to encode the objects. There is no unserialization with this interface, differently from this project.
Json Serializer requires PHP >= 5.4
class MyCustomClass {
public $isItAwesome = true;
protected $nice = 'very!';
}
$instance = new MyCustomClass();
$serializer = new Zumba\Util\JsonSerializer();
$json = $serializer->serialize($instance);
// $json will contain the content {"@type":"MyCustomClass","isItAwesome":true,"nice":"very!"}
$restoredInstance = $serializer->unserialize($json);
// $restoredInstance will be an instance of MyCustomClass
If you are using composer, install the package zumba/json-serializer
.
$ composer require zumba/json-serializer
Or add the zumba/json-serializer
directly in your composer.json
file.
If you are not using composer, you can just copy the files from src
folder in your project.