当前路径:vendor/phpunit/phpunit/src/Util/Json.php <?php declare(strict_types=1); /* * This file is part of PHPUnit. * * (c) Sebastian Bergmann <sebastian@phpunit.de> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace PHPUnit\Util; use PHPUnit\Framework\Exception; /** * @internal This class is not covered by the backward compatibility promise for PHPUnit */ final class Json { /** * Prettify json string * * @throws \PHPUnit\Framework\Exception */ public static function prettify(string $json): string { $decodedJson = \json_decode($json, false); if (\json_last_error()) { throw new Exception( 'Cannot prettify invalid json' ); } return \json_encode($decodedJson, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE); } /* * To allow comparison of JSON strings, first process them into a consistent * format so that they can be compared as strings. * @return array ($error, $canonicalized_json) The $error parameter is used * to indicate an error decoding the json. This is used to avoid ambiguity * with JSON strings consisting entirely of 'null' or 'false'. */ public static function canonicalize(string $json): array { $decodedJson = \json_decode($json); if (\json_last_error()) { return [true, null]; } self::recursiveSort($decodedJson); $reencodedJson = \json_encode($decodedJson); return [false, $reencodedJson]; } /* * JSON object keys are unordered while PHP array keys are ordered. * Sort all array keys to ensure both the expected and actual values have * their keys in the same order. */ private static function recursiveSort(&$json): void { if (!\is_array($json)) { // If the object is not empty, change it to an associative array // so we can sort the keys (and we will still re-encode it // correctly, since PHP encodes associative arrays as JSON objects.) // But EMPTY objects MUST remain empty objects. (Otherwise we will // re-encode it as a JSON array rather than a JSON object.) // See #2919. if (\is_object($json) && \count((array) $json) > 0) { $json = (array) $json; } else { return; } } \ksort($json); foreach ($json as $key => &$value) { self::recursiveSort($value); } } }
相关源码
- 可旋转的彩色立方体C#源代码2021-10-29
- 在线考试系统2021-10-15
- EduSoho开源网校系统源码2019-06-27
- 仿拼多多小程序商城源码2019-06-06
- PHP5网站运行监测系统源码2017-04-14
关于我们 | 顾问团队 | 发展历程 | 联系我们 | 源码上传
联系电话(Tel):4008-010-151(免长途)
地址:北京市海淀区大恒科技大厦五层 邮编:100080
Floor 5th,Daheng Building,Zhongguancun,Beijing,China,100080
51Aspx.com 版权所有 CopyRight © 2006-2022. 京ICP备09089570号 | 京公网安备11010702000869号
联系电话(Tel):4008-010-151(免长途)
地址:北京市海淀区大恒科技大厦五层 邮编:100080
Floor 5th,Daheng Building,Zhongguancun,Beijing,China,100080
51Aspx.com 版权所有 CopyRight © 2006-2022. 京ICP备09089570号 | 京公网安备11010702000869号