bernardosecades / php-json
使用 PHP 编码、解码、处理错误以及验证 JSON
v1.0.0
2016-08-23 13:29 UTC
Requires
- php: >=5.5
- ext-json: *
- ext-spl: *
- myclabs/php-enum: ^1.4
Requires (Dev)
- phpunit/phpunit: ~4.8
This package is not auto-updated.
Last update: 2024-09-27 23:18:48 UTC
README
为什么?
主要是为了处理 JSON 编码/解码错误,并封装选项以便轻松编码。
使用方法
use BernardoSecades\Json\Json; ... Json::decode($value); Json::encode($value);
json encode 中的选项
use BernardoSecades\Json\Json; use BernardoSecades\Json\Option; use BernardoSecades\Json\ArrayOption; ... $options = new ArrayOption(); $options[] = Option::JSON_UNESCAPED_UNICODE(); // Use enum object $options[] = Option::JSON_UNESCAPED_SLASHES(); $options[] = Option::JSON_NUMERIC_CHECK(); Json::encode($value, $options);
处理错误
use BernardoSecades\Json\Json; use BernardoSecades\Json\DecodeException; use BernardoSecades\Json\EncodeException; ... try { Json::decode($value); } catch (DecodeException $exception) { // do something } // or if (!Json::isValid($value)) { // do something } try { Json::encode($value); } catch (EncodeException $exception) { // do something }
从 Encode/Decode 异常中获取信息
use BernardoSecades\Json\Json; use BernardoSecades\Json\DecodeException; ... try { Json::decode($value); } catch (DecodeException $exception) { $errorMessage = sprintf('%s , json error code %d', $exception->getMessage(), // see https://php.ac.cn/manual/en/function.json-last-error-msg.php $exception->getCode(), // see https://php.ac.cn/manual/en/json.constants.php ); $this->logger->error($errorMessage); // do something more }
安装
composer require bernardosecades/php-json