tebru / gson-php
PHP版的Gson:将PHP对象与JSON之间的转换
v0.7.5
2022-04-06 16:27 UTC
Requires
- php: >=7.1
- phpdocumentor/reflection-docblock: ^3.2.3|^4.0.1|^5
- psr/simple-cache: ^1.0
- symfony/cache: ^3.3|^4.0|^5.0|^6.0
- tebru/doctrine-annotation-reader: ^0.3.7
- tebru/php-type: ^0.1.7
Requires (Dev)
- phpunit/phpunit: ^7.0|^8.0
- dev-master
- v0.7.x-dev
- v0.7.5
- v0.7.4
- v0.7.3
- v0.7.2
- v0.7.1
- v0.7.0
- v0.6.7
- v0.6.6
- v0.6.5
- v0.6.4
- v0.6.3
- v0.6.2
- v0.6.1
- v0.6.0
- v0.6.0-beta1
- v0.5.9
- v0.5.8
- v0.5.7
- v0.5.6
- v0.5.5
- v0.5.4
- v0.5.3
- v0.5.2
- v0.5.1
- v0.5.0
- v0.4.1
- v0.4.0
- v0.3.0
- v0.2.0
- v0.1.0
- dev-caching
- dev-fix-reflection-type-to-string
- dev-fix-null-in-array
- dev-add-psr-simple-cache
- dev-class-metadata-visitor
- dev-allow-expose-from-class-exclude
- dev-fix-array-adapter
- dev-fix-docblock-parsing-for-array
- dev-update-type-token-factory
- dev-fix-type-resolution-order
- dev-add-decode-data-to-json-exception
- dev-split-exclusion-strategies
- dev-add-path-to-writer
- dev-performance-improvements-v2
- dev-test
This package is auto-updated.
Last update: 2024-09-06 21:39:27 UTC
README
此库是将google/gson用PHP重写的。它的目的是轻松处理PHP对象与JSON之间的转换。它共享一些google/gson的目标,例如
- 使用
toJson
和fromJson
方法提供的简单接口 - 支持第三方类的序列化和反序列化
- 允许PHP对象与JSON之间的模式差异
此外
- 利用PHP 7标量类型提示来智能地处理属性类型
- 限制使用时所需的注释数量
- 允许根据运行时信息做出序列化决策
概述
以下是一些简单用例,以了解库的工作方式
如果您有一个要转换为JSON的PHP对象
// $object obtained elsewhere $gson = Gson::builder()->build(); $json = $gson->toJson($object);
所做的是使用提供的GsonBuilder
设置合理的默认值来配置Gson
对象。调用Gson::toJson
并传入一个对象将返回一个JSON字符串。
如果您需要,可以强制Gson使用的序列化类型
// $object obtained elsewhere $gson = Gson::builder()->build(); $json = $gson->toJson($object, MyCustomClass::class);
反向操作非常相似
// $json obtained elsewhere $gson = Gson::builder()->build(); $fooObject = $gson->fromJson($json, Foo::class);
现在我们调用Gson::fromJson
并将json作为字符串传入,以及我们希望映射到的对象类型。在这个例子中,我们将得到一个实例化的Foo
对象。
Gson有一个“标准化”形式的概念。这仅仅意味着使用json_decode
解码的数据,或者可以传递给json_encode
的数据。
// $object obtained elsewhere $gson = Gson::builder()->build(); $jsonArray = $gson->toNormalized($object); $object = $gson->fromNormalized($jsonArray, Foo::class);
文档
安装
此库需要PHP 7.1
composer require tebru/gson-php
确保在您的初始脚本之一中设置注释加载器。
\Doctrine\Common\Annotations\AnnotationRegistry::registerLoader('class_exists');
许可证
本项目采用MIT许可证。有关更多信息,请参阅LICENSE
文件。