Home » Php » php – How to show null value in JSON in FOS Rest Bundle with JMS Serializer?

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

Posted by: admin April 23, 2020 Leave a comment

Questions:

I had a read through this : https://github.com/schmittjoh/serializer/issues/77 but did not find any way to serialize null values in JSON for FOS Rest bundle with JMS serializer (meaning just show the key of the Doctrine object even if its null).

I am using the following config in composer.json

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

The JMS serializer config

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

Or the FOS Rest bunde config

fos_rest:
view:
    serialize_null: true

Does not work. I’m not using a view I’m “view_response_listener: ‘force'” so if a solution from the config can be provided it would help, thanks.

How to&Answers:

Try this

in your controller

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

But the interaction with the fosrestbundle about configs is not known to me.

Answer:

You can set the following option in the config since recently:

fos_rest:
    serializer:
        serialize_null: true

Answer:

The easiest way to make this feature works like a charm

Add the following extra configuration to your fos_rest config option:

fos_rest:
    serializer:
        serialize_null: true