Как показать значение null в JSON в пакете Rest FOS с сериализатором JMS?

Я прочитал это:https://github.com/schmittjoh/serializer/issues/77 но не нашел способа сериализовать нулевые значения в JSON для пакета FOS Rest с сериализатором JMS (то есть просто показать ключ объекта 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

fos_rest:
view:
    serialize_null: true

не работает. Я не используя представление, я "view_response_listener:' force'", поэтому, если решение из конфигурации может быть предоставлено, это поможет, спасибо.

3 ответов


попробуй такое

в контроллере

    $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 о конфигурациях мне неизвестно.


вы можете установить следующий параметр в конфигурации с недавнего времени:

fos_rest:
    serializer:
        serialize_null: true

самый простой способ сделать эту функцию работает как шарм

добавьте следующую дополнительную конфигурацию к опции конфигурации fos_rest:

fos_rest:
    serializer:
        serialize_null: true