Spring boot jackson 2-将API响应空字符串转换为null
我想转换属性中的空字符串值,并在API响应模型对象中将其替换为Spring boot jackson 2-将API响应空字符串转换为null,spring-boot,jackson,jackson-databind,Spring Boot,Jackson,Jackson Databind,我想转换属性中的空字符串值,并在API响应模型对象中将其替换为null 假设API响应是Transaction,它包含两个类型为TransDetails和UserDetails的实例变量。这两个模型类包含大约100个字符串属性 现在,TransDetails和UserDetails的一些属性在API响应中显示空字符串 如何在jackson 2中将其更改为null 我尝试了解决方案,但它在类级别不起作用。我相信您可以尝试配置ObjectMapper smth。如下 final ObjectMapp
null
假设API响应是Transaction
,它包含两个类型为TransDetails
和UserDetails
的实例变量。这两个模型类包含大约100个字符串属性
现在,TransDetails
和UserDetails
的一些属性在API响应中显示空字符串
如何在jackson 2中将其更改为null
我尝试了解决方案,但它在类级别不起作用。我相信您可以尝试配置ObjectMapper smth。如下
final ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true);
这可能很有用我想说,您可以在响应模型类的顶部使用下面的命令,这将使您的所有值都为null,并且json响应中不包含空字符串值,这意味着根据json,这将为null
@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class Foo {
private String a;
private String b;
}
如果a有一些值,比如a和b没有(它是null或空的),那么json响应将是->
{
"a": "A"
}
希望您觉得这很有用。您能为控制器和返回的对象提供代码吗。因为默认情况下,除非您使用了一些“@JsonInclude(JsonInclude.Include.NON_null)”将只显示非null的json,否则在该期间内没有设置任何值的每个字段都会得到null。像下面这样。{“system”:“mySystem”,“created”:null,“createdBy”:null}问题是用null替换空字符串。我尝试过这个方法,但在jackson 2和最新的spring boot API中不起作用。根据我的调查,我建议您不要将空字符串转换为null,这就是它不起作用的原因。对不起。目前,我认为要么需要setter,要么需要自定义反序列化程序,这可能是最好的选择。因为接受\空\字符串\作为\空\对象的行为本身是有意的。这是根据