Symfony 序列化程序不适用于 --no-dev
Symfony serializer doesn't work with --no-dev
我正在使用 symfony 序列化程序。但是,如果我安装带有 --no-dev
标志的作曲家包,它会反序列化应该是数组数组中的对象数组的数据。
这是连载:
$result = $this->get('serializer')->deserialize(
$request->getContent(),
InputDto::class,
'json'
);
对于反序列化,我在 DTO 中使用注释。
这是 "field" 在 DTO 中查找对象数组的方式:
/**
* @var OrderItemDto[]|Collection
*/
private $items = [];
基于代码:
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]
);
不应尝试将其转换为数组。
要使对象子关卡工作,您需要添加到 app/config/config.yml
在 framework
部分下一行:
property_info:
enabled: true
我正在使用 symfony 序列化程序。但是,如果我安装带有 --no-dev
标志的作曲家包,它会反序列化应该是数组数组中的对象数组的数据。
这是连载:
$result = $this->get('serializer')->deserialize(
$request->getContent(),
InputDto::class,
'json'
);
对于反序列化,我在 DTO 中使用注释。
这是 "field" 在 DTO 中查找对象数组的方式:
/**
* @var OrderItemDto[]|Collection
*/
private $items = [];
基于代码:
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]
);
不应尝试将其转换为数组。
要使对象子关卡工作,您需要添加到 app/config/config.yml
在 framework
部分下一行:
property_info:
enabled: true