monsieurbon / json-serializer
轻量级的PHP JSON序列化器
v1.5.0
2019-03-21 06:46 UTC
Requires
- php: ~7.2
- ext-json: *
- ext-yaml: *
Requires (Dev)
- phpunit/phpunit: ^8.0
README
轻量级的PHP JSON序列化器
安装
composer require monsieurbon/json-serializer
使用
$serializer = new JsonSerializer(); $serializer->configure('path/to/some/config.yml'); $json = $serializer->serialize($myObject); $myObject = $serializer->deserialize($json, MyClass::class); $myObject = $serializer->deserialize($json, function ($dataArray) { return 'My\ClassName\From\DataArray'; });
配置
您可以使用yaml格式的配置文件
NameSpace\Of\MyObject: arrayProperty: 'array' booleanProperty: 'boolean' dateProperty: type: 'date' dateFormat: 'Y-m-d\TH:i:s\Z' floatProperty: 'float' integerProperty: 'integer' stringProperty: 'string' nestedObject: 'NameSpace\Of\MyNestedObject' factoryObject: type: 'NameSpace\Of\FactoryObject' factoryMethod: 'fromData' NameSpace\Of\MyNestedObject: dateProperty: 'date'
类型 date
支持可选的 dateFormat 属性。默认为 d-m-Y H:i:s\Z
。对于嵌套对象,您可以定义一个静态工厂方法,该方法将使用数据调用以创建对象。
如果您想指定对象将序列化的数据,请实现标准的 php \JsonSerializable 接口。
依赖项
以下PHP扩展是必需的
- ext-yaml
- ext-json
此包仅处理(反)序列化的反射部分,并依赖于PHP json扩展进行实际的(反)序列化。