我正在使用symfony序列化程序。但是,如果我使用--no-dev
标志安装composer包,它会反转为数组数组中应该是对象数组的数据。
这是序列化:
$result = $this->get('serializer')->deserialize(
$request->getContent(),
InputDto::class,
'json'
);
对于反序列化,我在DTO中使用注释。
这就是DTO中对象数组的“字段”外观:
/**
* @var OrderItemDto[]|Collection
*/
private $items = [];
答案 0 :(得分:2)
基于代码:
https://github.com/symfony/serializer/blob/master/Encoder/JsonDecode.php#L84
如果您将选项 json_decode_associative 传递为false
$result = $this->get('serializer')->deserialize(
$request->getContent(),
InputDto::class,
'json',
['json_decode_associative' => false]
);
不应该尝试将其转换为数组。
答案 1 :(得分:1)
要使对象分段工作,您需要添加到app/config/config.yml
在framework
部分的下一行:
property_info:
enabled: true