如何使用JMS Serializer在FOS Rest Bundle中的JSON中显示空值?

时间:2013-05-28 06:11:07

标签: php symfony fosrestbundle jmsserializerbundle

我读过这个:https://github.com/schmittjoh/serializer/issues/77但是没有找到任何方法在JSON中为JOS序列化程序的FOS Rest包中序列化空值(意味着只显示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:'force'”所以如果可以提供配置中的解决方案,那将有所帮助,谢谢。

3 个答案:

答案 0 :(得分:92)

您最近可以在配置中设置以下选项:

fos_rest:
    serializer:
        serialize_null: true

答案 1 :(得分:25)

试试这个

控制器中的

    $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;

但是我不知道与配置有关的关于配置的交互。

答案 2 :(得分:1)

制作此功能的最简单方法就像魅力一样

将以下额外配置添加到fos_rest配置选项中:

<a href="url" rel="noreferrer">Text</a>