jurasciix / objeckson
该包最新版本(1.0.3)没有提供许可证信息。
1.0.3
2024-05-28 03:36 UTC
Requires
- php: ^8.1
- nette/utils: v2.5.7
- phpstan/phpdoc-parser: 1.26.0
Requires (Dev)
- phpunit/phpunit: ^10
This package is auto-updated.
Last update: 2024-09-19 23:16:28 UTC
README
Objeckson 是一个用于在 PHP 对象中显示动态关联结构(通常以 JSON 格式存储)的库。
功能和路线图
- 反序列化数组
- 转换为列表
- 分析泛型类型
- 处理可为空的类型
- 自定义设置器
- 分析数组形状:array{foo: Foo, bar: Bar}
- Readonly 属性的默认值
- 转换为 STD 对象:DateTime, SplFixedArray 等...
- 直接显示类型的组合(基本类型):string|int|Foo
- OneOf
安装
要求
- PHP ≥ 8.1
- Composer
通过 composer 安装
composer require jurasciix/objeckson:^1.0
快速教程
以下代码演示了初始化提供 Objeckson 功能的对象,以及将 JSON 数据反序列化并显示为 PHP 对象的过程。
use jurasciix\objeckson\JsonProperty; use jurasciix\objeckson\Optional; use jurasciix\objeckson\Objeckson; #[JsonProperty] class APIResponse { #[Optional] public ?APIError $error = null; #[Optional] public mixed $data = null; } #[JsonProperty] class APIError { public int $code; public string $description; } $responseJSON = <<<JSON { "error": { "code": 1, "description": "Error description" } } JSON; // Инициализируем главный объект $objeckson = new Objeckson(); // Десериализовываем и отображаем данные на объект типа APIResponse. $response = $objeckson->fromJson($responseJSON, APIResponse::class); // Смотрим, что у нас вышло. var_dump($response);