Скажем, у нас есть простой объект для сериализации с вложенным объектом:
class User implements \JsonSerializable
{
private $name;
private $email;
private $address;
public function jsonSerialize()
{
return [
'name' => $this->name,
'email' => $this->email,
'address' => $this->address
];
}
}
Вложенный объект:
class Address implements \JsonSerializable
{
private $city;
private $state;
public function jsonSerialize()
{
return [
'city' => $this->city,
'state' => $this->state
];
}
}
Мы используем json_encode()
для сериализации, это будет использовать изначально JsonSerializable:: jsonSerialize():
$json = json_encode($user);
Если $name
и $state
равны нулю, как это сделать:
{
"email": "[email protected]",
{
"city": "Paris"
}
}
вместо этого:
{
"name": null,
"email": "[email protected]",
{
"city": "Paris",
"state": null
}
}