如何使用JMS序列化器在FOS Rest Bundle中显示JSON中的空值


How to show null value in JSON in FOS Rest Bundle with JMS Serializer?

我读过这个:https://github.com/schmittjoh/serializer/issues/77但没有找到任何方法来序列化JSON中的空值与JMS序列化的FOS Rest bundle(意思只是显示Doctrine对象的键,即使它是空的)。

我在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 bundle config

fos_rest:
view:
    serialize_null: true

不起作用。我不使用视图,我是"view_response_listener: 'force'",所以如果从配置的解决方案可以提供它会有所帮助,谢谢。

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

fos_rest:
    serializer:
        serialize_null: true

试试这个

在你的控制器

    $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关于configs的交互

让这个功能像符咒一样工作的最简单的方法

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

fos_rest:
    serializer:
        serialize_null: true