zerifas / json
此软件包的最新版本(3.0.0)没有可用的许可证信息。
定义您的JSON文档的架构,并对它们进行验证
3.0.0
2022-12-15 21:35 UTC
Requires
- php: >=8.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.5
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.7
This package is auto-updated.
Last update: 2024-09-16 01:08:53 UTC
README
这是一个小型库,允许您为您的JSON文档定义一个架构,验证它们,并获得一个“安全”的文档版本,其中所有可选值都设置为默认值。
安装
使用 composer
$ composer required zerifas/json
使用方法
<?php require 'vendor/autoload.php'; use Zerifas\JSON; $schema = new JSON\Obj([ 'id' => new JSON\Number(), 'enabled' => new JSON\OptionalBoolean(false), 'array' => new JSON\Arr(), 'stringArray' => new JSON\Arr(new JSON\Str()), 'optionalArray' => new JSON\OptionalArr(), 'optionalStringArray' => new JSON\OptionalArr(new JSON\Str()), 'optionalObj' => new JSON\OptionalObj( [ 'name' => new JSON\Str(), ], [ 'name' => 'Alice', ] ), ]); $v = new JSON\Validator($schema); $json = '{"id":1,"array":[],"stringArray":["Hello","World"]}'; if ($v->isValid($json)) { $doc = $v->getDocument(); echo implode(', ', $doc->stringArray), PHP_EOL; // Hello, World echo $doc->optionalObj->name, PHP_EOL; // Alice } // This is not valid for 2 reasons: `id` is missing, and `array` is a number. $json = '{"array":15,"stringArray":[]}'; if (!$v->isValid($json)) { // Errors will be an array: // [ // 'Key path \'id\' is required, but missing.', // 'Key path \'array\' should be array, but is number.', // ] foreach ($v->getErrors() as $err) { echo $err, PHP_EOL; } }