我读过这个: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