Рубрики
Uncategorized

Сериализуемый Json на PHP

Автор оригинала: David Wong.

Мы все знаем, что json _encode() PHP может кодировать объект для генерации строки JSON, но объект в нашей программе часто очень сложный. json_encode () – это только общее свойство объекта JSON, которое действительно немного слабое. К счастью, в PHP 5.4 появился интерфейс под названием Json Сериализуемый, который решил проблему. Давайте взглянем.

Сериализуемый Json-это класс интерфейса, реализующий этот интерфейс. Вам нужно определить метод сериализации json (). Этот метод будет вызван при познании объекта этого класса. В это время вы можете по желанию настроить конечный результат озонирования этим методом.

Неужели ты не понимаешь? Давайте возьмем пример!

class Man implements JsonSerializable {
    private $a, $b;
 
    public function __construct($a, $b) {
        $this->a = $a;
        $this->b = $b;
    }
 
    public function jsonSerialize() {
        return $this->a + $this->b;
    }
}

Echo json_encode (new Man (23, 42);//output 65

Как вы можете видеть, когда json_encode кодирует объект основного класса, поскольку Основной класс наследует JsonSerializable, он не заботится об открытых свойствах класса, а вызывает функцию JsonSerialize и возвращает ее результаты.

Может быть, вы удивитесь, почему я это сказал. Во-первых, протокол JSON важен и не нужен в современных приложениях и микросервисах. Понимание этого интерфейса очень полезно для нас при работе с json. Во-вторых, интерфейс JsonSerializable также используется в классе Json yii. Поэтому нам очень полезно изучить исходный код Yii.

Эта статья была первоначально опубликована на общедоступном номере Wechat Компания North Brothers