eventjet / json
类型安全的JSON编码和解码
v0.1.2
2024-03-25 15:33 UTC
Requires
- php: >=8.1
- ext-json: *
Requires (Dev)
- eventjet/coding-standard: ^3.15
- infection/infection: ^0.26.20
- maglnet/composer-require-checker: ^4.6
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.10
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-strict-rules: ^1.5
- phpunit/phpunit: ^10.1
- psalm/plugin-phpunit: ^0.18.4
- vimeo/psalm: ^5.23
This package is auto-updated.
Last update: 2024-09-19 03:43:16 UTC
README
PHP的类型安全JSON解析和编码。
虽然PHP的本地json_parse()
输出普通的数组或stdClass对象,但这个库允许您将JSON解码为预定义的类。这允许您对JSON数据进行类型提示和IDE自动完成。
eventjet/json
松散地基于Go的encoding/json
包中处理JSON的方式。
安装
composer require eventjet/json
用法
use Eventjet\Json\Json; enum Status: string { case Active = 'active'; case Inactive = 'inactive'; } final readonly class User { /** * @param list<User> $friends */ public function __construct( public string $name, public Status $status, public array $friends, public string|null $email = null, ) {} } $json = ' { "name": "John", "status": "active", "friends": [ {"name": "Jane", "status": "inactive", "friends": []} ] } '; $user = Json::decode($json, User::class); echo $user->name; // John echo $user->status; // Status::Active echo $user->friends[0]->name; // Jane echo $user->friends[0]->status; // Status::Inactive