在JMSSerializer @MaxDeepth
和@Groups
中有很好的注释。为什么它们不能用于反序列化,而只能用于序列化?我如何启用它们来反序列化?
jmmserializer的源代码显示排除策略不会被忽略,它们只是等于null。
好吧,我有解决方案,这很容易=)实际上我被FOSRestBundle的@View(serializerGroups={"a","b"}
弄糊涂了,但实际上它们用于序列化而不是反序列化。因此,解决方案是将带有正确选项的常规上下文发送给序列化器:
$context = new DeserializationContext();
$context->setGroups(['a', 'b']);
$context->enableMaxDepthChecks(); // if you wish
$serializer->deserialize($content, $classname, 'json', $context);