java可以通过注解将为空或者默认值的属性不会序列化到对象中
嗨,朋友既然有缘,何不关注一下!
@JsonInclude(JsonInclude.Include.NON_NULL)
将这个注解加在实体类对应的对象名上面,或者类名上面。 Include.ALWAYS 属性都序列化 Include.NON_DEFAULT 属性为默认值不序列化 Include.NON_EMPTY 属性为 空(””) 或者为 NULL 都不序列化 Include.NON_NULL 属性为NULL 不序列化
举例:@JsonInclude(JsonInclude.Include.NON_NULL)
private String resourceName;
resourceName为null的就不会序列化到对象中
- 自定义一个objectmapper
-
@Configuration public class JacksonConfig { @Bean @Primary @ConditionalOnMissingBean(ObjectMapper.class) public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) { ObjectMapper objectMapper = builder.createXmlMapper(false).build(); SerializerProvider serializerProvider = objectMapper.getSerializerProvider(); serializerProvider.setNullValueSerializer(new JsonSerializer<Object>() { @Override public void serialize(Object o, JsonGenerator jsonGenerator,
SerializerProvider serializerProvider) throws IOException, JsonProcessingException { jsonGenerator.writeString(""); } }); return objectMapper; } }
注意但是这个方法会把对象为空,list ,map ,枚举 为 null的情况下也转成 空字符串,这是个弊端,根据需求而用吧。3、直接设置属性默认值
就是在初始化实体类的时候设置属性默认值
如:
private String name="";
春有百花秋有月,夏有凉风冬有雪!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)