Допустим, у нас есть JSON, который нужно десереализовать:
[
{
"name": "z0000",
"rate": 0.39,
"orders": [
{
"id": 7765514,
"commission": 27930
}
]
}
]
Для этого в скрипте пишем:
/** @var User[] $users */
$users = $this->serializer->deserialize(
$request->getContent(),
User::class.'[]',
'json',
);
Чтобы вложенный объект был понят как объект, а не массив, нужно, чтобы было сделано:
сomposer require symfony/property-info
composer req phpdocumentor/reflection-docblock
composer require symfony/serializer
И в config/packages/framework.yaml вписать:
framework:
property_info:
enabled: true