当前位置: 首页 > 知识库问答 >
问题:

REST-如何在响应中只返回我们需要的字段?[副本]

司承业
2023-03-14

我在一次采访中被问到您有一个API-比如说getcustomer。此API返回客户的详细信息。但是为了减小REST响应的大小,我们只需要返回有价值的属性。因此,如果客户没有middlename,我们不应该在响应中看到{middlename=null}。我们怎么能这样做呢?

共有1个答案

柳镜
2023-03-14

使用Jackson可以通过两种方式从JSON序列化中排除空值:

>

  • 通过在ObjectMapper中设置属性jsonInclude.Include.non_null,全局(对于所有类),如ritesh.garg所建议的那样

    mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
    

    在单类级别,使用@JSONInclude(include.non_null)注释类,如下所示:

    @JsonInclude(Include.NON_NULL)
    public class Customer {
    
    }
    

  •  类似资料:
    • 我制作了一个返回UserSettings对象数组的服务: 当我在URL http://localhost:8181/settings?ids=123&fields=customdata,user_id上发出GET请求时,我会得到以下信息:

    • 我在Spring有Rest控制器。 控制器: 服务: 存储库: 实体: 目前当我在Postman(或浏览器)中使用方法@GetMap在获得JSON对象响应: 作为回应,我需要字符串格式的字段“id”,看起来像: 如何以字符串格式将JSON对象fielt“id”作为ObjectId返回?

    • 我刚刚开始使用Spring,希望有知识渊博的人可以帮助我。我有一个使用SpringRest数据的SpringRest存储库。我正在尝试解决如何执行以下操作。 > 公共接口ReadOnlyRepository扩展存储库{T findOne(ID id); } 公共接口ContentRepository扩展了ReadOnlyRepository } //我需要用“...”动态替换的字段@实体公共类内容

    • 问题内容: 我们要求我们仅返回搜索结果中的源字段,而不包含任何元数据。通过搜索,我发现使用Elasticsearch无法做到这一点,但是我确实找到了在该线程中使用插件的参考: 被链接的插件是这个: https://github.com/imotov/elasticsearch-just- source/blob/master/src/main/java/org/elasticsearch/exam

    • 我们要求只返回搜索结果中的源字段,而不返回任何元数据。通过搜索,我发现这在elasticsearch中是不可能的,但我确实在这个线程中找到了一个可能使用插件的引用: 筛选出元数据字段,只返回elasticsearch中的源字段 链接的插件是这样的: 我还在学习elasticsearch,但是有人能解释一下我将如何在我们的elasticsearch配置中实现和部署这个插件吗? 谢谢,吉姆

    • 我希望在spring boot中返回类似以下内容的json响应: 我的RestController如下所示 但我得到的反应是这样的