如何使用JMS序列化程序在FOS Rest Bundle中以JSON显示空值?

我通读了一遍:https://github.com/schmittjoh/serializer/issues/77 但没有找到任何方法使用JMS序列化FOS Rest捆绑包的JSON中的空值(这意味着只显示 Doctrine对象的键,即使它为null)。

我在 composer.json 中使用以下配置

"jms/serializer-bundle": "0.12.*@dev",
"friendsofsymfony/rest-bundle": "0.13.*@dev",

JMS 序列化程序配置

#jms-serializer
jms_serializer:
 visitors:
    json:
        options: 0 # json_encode options bitmask
        serialize_null: true

或 FOS Rest bunde config

fos_rest:
view:
    serialize_null: true

不起作用。我没有使用“view_response_listener:'强制'”的视图,所以如果可以提供来自配置的解决方案,那将有所帮助,谢谢。


答案 1

从最近开始,您可以在配置中设置以下选项:

fos_rest:
    serializer:
        serialize_null: true

答案 2

试试这个

在控制器中

    $entity = $this->getEntity($id);

    $context = new SerializationContext();
    $context->setSerializeNull(true);

    $serializer = $this->get('jms_serializer');

    $response = new Response($serializer->serialize($entity, 'json', $context));
    $response->headers->set('Content-Type', 'application/json');

    return $response;

但是,关于配置的fosrestbundle的交互是我不知道的。


推荐