Buckets:
| /** | |
| * This file is part of the Nette Framework (https://nette.org) | |
| * Copyright (c) 2004 David Grudl (https://davidgrudl.com) | |
| */ | |
| declare(strict_types=1); | |
| namespace Nette\Utils; | |
| use Nette; | |
| /** | |
| * JSON encoder and decoder. | |
| */ | |
| final class Json | |
| { | |
| use Nette\StaticClass; | |
| /** @deprecated use Json::decode(..., forceArrays: true) */ | |
| public const FORCE_ARRAY = JSON_OBJECT_AS_ARRAY; | |
| /** @deprecated use Json::encode(..., pretty: true) */ | |
| public const PRETTY = JSON_PRETTY_PRINT; | |
| /** @deprecated use Json::encode(..., asciiSafe: true) */ | |
| public const ESCAPE_UNICODE = 1 << 19; | |
| /** | |
| * Converts value to JSON format. Use $pretty for easier reading and clarity, $asciiSafe for ASCII output | |
| * and $htmlSafe for HTML escaping, $forceObjects enforces the encoding of non-associateve arrays as objects. | |
| * @throws JsonException | |
| */ | |
| public static function encode( | |
| mixed $value, | |
| bool|int $pretty = false, | |
| bool $asciiSafe = false, | |
| bool $htmlSafe = false, | |
| bool $forceObjects = false, | |
| ): string | |
| { | |
| if (is_int($pretty)) { // back compatibility | |
| $flags = ($pretty & self::ESCAPE_UNICODE ? 0 : JSON_UNESCAPED_UNICODE) | ($pretty & ~self::ESCAPE_UNICODE); | |
| } else { | |
| $flags = ($asciiSafe ? 0 : JSON_UNESCAPED_UNICODE) | |
| | ($pretty ? JSON_PRETTY_PRINT : 0) | |
| | ($forceObjects ? JSON_FORCE_OBJECT : 0) | |
| | ($htmlSafe ? JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_TAG : 0); | |
| } | |
| $flags |= JSON_UNESCAPED_SLASHES | |
| | (defined('JSON_PRESERVE_ZERO_FRACTION') ? JSON_PRESERVE_ZERO_FRACTION : 0); // since PHP 5.6.6 & PECL JSON-C 1.3.7 | |
| $json = json_encode($value, $flags); | |
| if ($error = json_last_error()) { | |
| throw new JsonException(json_last_error_msg(), $error); | |
| } | |
| return $json; | |
| } | |
| /** | |
| * Parses JSON to PHP value. The $forceArrays enforces the decoding of objects as arrays. | |
| * @throws JsonException | |
| */ | |
| public static function decode(string $json, bool|int $forceArrays = false): mixed | |
| { | |
| $flags = is_int($forceArrays) // back compatibility | |
| ? $forceArrays | |
| : ($forceArrays ? JSON_OBJECT_AS_ARRAY : 0); | |
| $flags |= JSON_BIGINT_AS_STRING; | |
| $value = json_decode($json, flags: $flags); | |
| if ($error = json_last_error()) { | |
| throw new JsonException(json_last_error_msg(), $error); | |
| } | |
| return $value; | |
| } | |
| } | |
Xet Storage Details
- Size:
- 2.27 kB
- Xet hash:
- 3b3e10858236729b00238d9a46aa78eadc01f2c57282e1d9d05450e8e3190103
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.