【发布时间】:2019-04-28 21:04:56
【问题描述】:
反序列化的 JMS 序列化程序 1.* 仅填充输入中提供的那些字段。例如,我们有如下代码:
$criteria = $this->serializer->deserialize($request->getContent(), SearchCriteria::class, 'json');
当请求中没有提供 limit 字段时,它采用默认值,在类属性中定义,即
class SearchCriteria {
// ...
private $limit = 10;
// ...
}
迁移到 JMS Serializer 2.0 后,此行为发生了变化 - 现在它用 null 覆盖了 limit 字段,这破坏了我们的逻辑。有没有办法配置旧行为?我们使用带有 jms/serializer-bundle@3.0.0 的 Symfony 4。
这里是jms_serializer.yaml:
jms_serializer:
default_context:
serialization:
serialize_null: false
deserialization:
serialize_null: false
【问题讨论】:
标签: php symfony4 jmsserializerbundle jms-serializer