后端数据返回前端时,不返回null的字段

前端调用某接口,返回的是一个pojo,里面有些字段可能为null。null的字段,就不返回给前端了。
比如返回了User,里面只有一个account有值,其他都为null。那么在返回的时候,只返回account即可。

方式一:application上加配置

只需要在配置文件application上,增加spring.jackson.default-property-inclusion=non_null配置。

方式二:实体类上加配置

方式1其实有一定的局限性。如果项目里继承了WebMvcConfigurationSupport,那么方式1配置就失效了。
这种情况下,可以在实体类上加上 @JsonInclude(JsonInclude.Include.NON_NULL) 注解
+ 在这里插入图片描述

方式三:config全局配置

方式2虽然能达到效果,但是每个实体类上都加注解,实在费劲。
因此,可以在继承了WebMvcConfigurationSupport的类上,进行全局配置。
配置如下:

// JsonInclude全局配置
@JsonInclude(JsonInclude.Include.NON_NULL)
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder()
            .serializationInclusion(JsonInclude.Include.NON_NULL);
    converters.add(new MappingJackson2HttpMessageConverter(builder.build()));
}

如下图所示
在这里插入图片描述
或者第二种配置方式
在这里插入图片描述
如果使用第二种配置方式还需要加上@EnableWebMvc才能生效

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java后端中,可以使用`javax.servlet.ServletOutputStream`类来发送HTTP Chunked编码的响应数据。 以下是一个使用Java Servlet进行HTTP Chunked编码的示例代码: ```java import java.io.*; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HttpChunkedEncodingServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String data = readData(request); response.setContentType("text/plain"); response.setChunked(true); ServletOutputStream out = response.getOutputStream(); OutputStreamWriter writer = new OutputStreamWriter(out); String[] chunks = data.split("(?<=\\G.{5})"); for (String chunk : chunks) { writer.write(Integer.toHexString(chunk.length()) + "\r\n"); writer.write(chunk + "\r\n"); writer.flush(); } writer.write("0\r\n\r\n"); writer.flush(); writer.close(); } private String readData(HttpServletRequest request) throws IOException { BufferedReader reader = request.getReader(); StringBuilder data = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { data.append(line); } reader.close(); return data.toString(); } } ``` 这个示例代码使用`javax.servlet.ServletOutputStream`类来发送HTTP Chunked编码的响应数据。在设置响应头,需要设置`Transfer-Encoding`头字段为`chunked`。在发送数据,将数据按照指定的大小分成若干个块,然后逐个发送。在发送完所有块后,还需要发送一个长度为0的块来表示数据传输结束。最后,可以通过`java.io.BufferedReader`来读取请求数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值