Read($key, $default); } /** * Читает значение ключа JSON. * * @param string $key Ключ JSON. * @param mixed $default Значение по умолчанию. * * @return mixed Значение ключа JSON или значение по умолчанию. */ public function Read (string $key, mixed $default = null): mixed { if (!$this->IsKeyExists($key)) return $default; $keys = $this->ParseKey($key); // Получаем текущий массив данных $current = $this->JsonData; // Для каждого ключа до предпоследнего for ($i = 0; $i < count($keys) - 1; $i++) // - переходим ко вложенному массиву $current = &$current[$keys[$i]]; // Возвращаем значение последнего ключа и если его нет, то возвращаем значение по умолчанию return $current[$keys[count($keys) - 1]] ?? $default; } /** * Читает значение ключа JSON как вещественное число. * * @param string $key Ключ JSON. * @param float $default Значение по умолчанию. * * @return float Значение ключа JSON или значение по умолчанию. */ public function ReadFloat (string $key, float $default = 0.0): float { return (float)$this->Read($key, $default); } /** * Читает значение ключа JSON как логическое значение. * * @param string $key Ключ JSON. * @param bool $default Значение по умолчанию. * * @return bool Значение ключа JSON или значение по умолчанию. */ public function ReadBool (string $key, bool $default = false): bool { return (bool)$this->Read($key, $default); } /** * Читает значение ключа JSON как массив. * * @param string $key Ключ JSON. * @param array $default Значение по умолчанию. * * @return array Значение ключа JSON или значение по умолчанию. */ public function ReadArray (string $key, array $default = []): array { return (array)$this->Read($key, $default); } /** * Читает значение ключа JSON как объект. * * @param string $key Ключ JSON. * @param object $default Значение по умолчанию. * * @return object Значение ключа JSON или значение по умолчанию. */ public function ReadObject (string $key, object $default): object { return (object)$this->Read($key, $default); } /** * Читает значение ключа JSON как строку. * * @param string $key Ключ JSON. * @param string $default Значение по умолчанию. * * @return string Значение ключа JSON или значение по умолчанию. */ public function ReadString (string $key, string $default = ""): string { return (string)$this->Read($key, $default); } }