JsonData) === 0) // - если массив пуст, возвращаем пустой JSON return '{}'; // Преобразую данные в JSON $json = json_encode($this->JsonData, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); // Проверка на ошибки if (json_last_error() !== JSON_ERROR_NONE) // - если есть ошибки, выбрасываем исключение throw new JsonException(null, JsonErrorCode::FromLastError(), json_last_error_msg()); // Возвращаем JSON return $json; } set { // Чтение содержимого файла и преобразование JSON в объект $this->JsonData = json_decode($value, true); // Проверка на ошибки if ($this->JsonData === null && json_last_error() !== JSON_ERROR_NONE) // - если есть ошибки, выбрасываем исключение throw new JsonException($value, JsonErrorCode::FromLastError(), json_last_error_msg()); } } /** * @var array $JsonData Массив данных. */ private array $JsonData; /** * Конструктор класса. */ public function __construct () { $this->JsonData = []; } /** * Деструктор класса. */ public function __destruct () { unset($this->JsonData); } // Подключаем методы чтения JSON use JsonReWriterReadTrait; // Подключаем методы записи JSON use JsonReWriterWriteTrait; // Подключаем методы сохранения и загрузки JSON use JsonReWriterLoadSaveTrait; // Подключаем методы работы с ключами use JsonReWriterKeyTrait; // Подключаем методы удаления данных из JSON use JsonReWriterDeleteTrait; }