使用springboot时如何创建JsonDeserializer,将null设置为JSON中等于“”的所有Java对象字段?
Posted
技术标签:
【中文标题】使用springboot时如何创建JsonDeserializer,将null设置为JSON中等于“”的所有Java对象字段?【英文标题】:How to create JsonDeserializer that sets null to all Java object fields that equals to "" in JSON when using springboot? 【发布时间】:2019-03-02 07:29:52 【问题描述】:我使用的是spring boot,需要接受application/json格式的http请求。有一些参数等于“”,我需要接受那些为空的参数。
我知道有一些类似的问题,但这些问题没有任何具体的答案,如果有人能给出代码实现的具体解释,我将不胜感激。
================================================ ======================
这是我的最终代码解决方案,希望对某人有所帮助。
@Configuration public class MessageConverterConfig @Bean @Primary // Use this to shadow other objectmappers public ObjectMapper objectMapper() ObjectMapper objMapper = new ObjectMapper(); objMapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT,true); return objMapper;
【问题讨论】:
【参考方案1】:这应该可以帮助你jackson-issue
基本上你需要创建自定义反序列化器 然后将其作为模块注册到您的 ObjectMapper
【讨论】:
我知道反序列化器可以实现它,但我想要一些更具体的代码实现作为示例。参数可以是 java 中的任何类型,例如枚举类型。非常感谢您的回答。 但是这个例子是针对字符串类型给出的,如果类型是枚举呢?我应该把注册模块代码放在哪里,在一个带有配置注释的文件中? 很抱歉,您需要自己解决这个问题。这是您应用编程技能并学习新东西的时候。以上是关于使用springboot时如何创建JsonDeserializer,将null设置为JSON中等于“”的所有Java对象字段?的主要内容,如果未能解决你的问题,请参考以下文章
为了使用springboot热部署功能,在使用创建向导时应选
使用 Spring Boot 时如何使用 SpringTemplateEngine