Java+Jackson+排除key为null问题 .serializationInclusion(Include.NON_NULL)可以比较好的排除value为空的情况,但是这种不是我需要的:报错
@Bean("jackson2ObjectMapperBuilderCustomizer")
public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
Jackson2ObjectMapperBuilderCustomizer customizer = new Jackson2ObjectMapperBuilderCustomizer() {
@Override
public void customize(Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder) {
jacksonObjectMapperBuilder
//.serializationInclusion(Include.NON_NULL)
网上找了好多资料,排除value为空是方便的,排除key为空的,就没有
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在Java中使用Jackson库时,如果你想排除那些值为null的字段进行序列化,.serializationInclusion(Include.NON_NULL)
确实是一个常用且有效的方法。但是,如果你想要进一步处理并排除那些键(key)为null的情况,这实际上不是一个直接由Jackson配置支持的功能,因为JSON对象本质上是键值对集合,键(key)为null在JSON结构中是不合法的,因此Jackson不会遇到这种情况。
不过,从你的问题描述来看,你可能是在尝试解决一个不同但相关的问题:可能是想避免在某些对象属性未被初始化(即null)时,这些属性对应的键出现在JSON输出中。基于这个理解,.serializationInclusion(Include.NON_NULL)
应该已经满足了需求,因为它确保了只有非null的值会被序列化到JSON中,相应的键自然也就不会出现。
如果是因为其他原因导致的“报错”,比如特定场景下期望的行为与上述不符,那么可能需要更详细地检查错误信息或具体需求来定位问题。例如,是否有可能是对象模型设计上的问题,或者是在序列化前对象状态管理不当导致的?
如果有其他特定的异常信息或详细的场景描述,请提供更多信息,以便给出更准确的建议。