首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用JMS序列化程序在FOS Rest Bundle中显示JSON中的空值?

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

Stack Overflow用户
提问于 2013-05-28 14:11:07
回答 3查看 14.3K关注 0票数 38

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

我在composer.json中使用以下配置

代码语言:javascript
复制
"jms/serializer-bundle": "0.12.*@dev",
"friendsofsymfony/rest-bundle": "0.13.*@dev",

JMS序列化程序配置

代码语言:javascript
复制
#jms-serializer
jms_serializer:
 visitors:
    json:
        options: 0 # json_encode options bitmask
        serialize_null: true

或FOS Rest bunde配置

代码语言:javascript
复制
fos_rest:
view:
    serialize_null: true

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-28 19:53:42

尝尝这个

在你的控制器中

代码语言:javascript
复制
    $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的交互对我来说是未知的。

票数 28
EN

Stack Overflow用户

发布于 2013-07-01 18:34:03

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

代码语言:javascript
复制
fos_rest:
    serializer:
        serialize_null: true
票数 99
EN

Stack Overflow用户

发布于 2018-04-06 23:53:12

最简单的方法就是让这个特性变得更有吸引力。

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

代码语言:javascript
复制
fos_rest:
    serializer:
        serialize_null: true

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16784996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档