Стратегия исключения JMSSerializer и группы по десериализации

В JMSSerializer @MaxDeepth и @Groups есть хорошие аннотации. Почему они не работают на десериализацию, а работают только на сериализацию? Как включить их для десериализации?

Источники jmmserializer показывают, что стратегии исключения не игнорируются, они просто равны нулю.


person pleerock    schedule 13.08.2014    source источник


Ответы (1)


Хорошо, у меня есть решение, это было довольно просто =) на самом деле меня смутил @View(serializerGroups={"a","b"} FOSRestBundle, но на самом деле они работают для сериализации, а не для десериализации. Таким образом, решение состоит в том, чтобы просто отправить сериализатору обычный контекст с правильными параметрами:

$context = new DeserializationContext();
$context->setGroups(['a', 'b']);
$context->enableMaxDepthChecks(); // if you wish
$serializer->deserialize($content, $classname, 'json', $context);
person pleerock    schedule 14.08.2014