如何限制未赋值变量不随POJO转换到JSON中?
解决未赋值字段不显示在JSON中的方案
不用手动重构JSON,直接通过JSON序列化库的配置就能实现,主流库的操作方法如下:
Jackson(Spring Boot默认使用)
- 全局生效:配置
ObjectMapper时设置忽略null值字段ObjectMapper objectMapper = new ObjectMapper(); objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); String json = objectMapper.writeValueAsString(yourAInstance); - 局部生效:如果只想让某个类或字段生效,直接在类上或字段上加注解
@JsonInclude(JsonInclude.Include.NON_NULL) public class A { private String varOne; private String varTwo; // getter、setter省略 }
Gson
创建Gson实例时关闭null值序列化(Gson默认就不序列化null,如果你之前主动开启过才需要手动配置):
Gson gson = new GsonBuilder().serializeNulls(false).create(); String json = gson.toJson(yourAInstance);
Fastjson
序列化时指定IgnoreNullValue特性即可:
String json = JSON.toJSONString(yourAInstance, SerializerFeature.IgnoreNullValue);
这些方案都是直接在序列化阶段控制字段输出,比手动重构JSON更简洁优雅,也更易维护。
内容的提问来源于stack exchange,提问作者DARK FOREST
相关产品推荐
相关产品推荐

