Java JsonNullable未使用Jackson序列化其值
我试图使用Java JsonNullable未使用Jackson序列化其值,java,json,Java,Json,我试图使用JsonNullable来区分没有值和null。当我序列化Java对象时,User,JsonNullable字段被序列化为具有值的JSON对象 {"present":false} 我希望它打印{},因为我用未定义的初始化了字段 这是我的课 public class User { @JsonProperty("userId") private JsonNullable<String> userId = JsonNullable.undefined(); //
JsonNullable
来区分没有值和null
。当我序列化Java对象时,User
,JsonNullable
字段被序列化为具有值的JSON对象
{"present":false}
我希望它打印{}
,因为我用未定义的初始化了字段
这是我的课
public class User {
@JsonProperty("userId")
private JsonNullable<String> userId = JsonNullable.undefined();
//set and get
//tostring
}
这张照片
{"userId":{"present":true}}
但我预料
{"userId":"12345"}
换句话说,我希望包装在JsonNullable
中的值被序列化为JSON。为什么JsonNullable
和Jackson会这样做?按照说明,您需要注册相应的模块(除了您拥有的任何其他模块之外):
ObjectMapper ObjectMapper=new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
registerModule(新的JsonNullableModule());
在Spring Boot中添加以下配置:
@Configuration
public class JacksonConfiguration {
@Bean
public JsonNullableModule jsonNullableModule() {
return new JsonNullableModule();
}
}
@Configuration
public class JacksonConfiguration {
@Bean
public JsonNullableModule jsonNullableModule() {
return new JsonNullableModule();
}
}