我有一个自定义序列化程序来将具有空白值的字符串视为 null 并修剪尾随空格。以下是相同的代码。-
public class StringSerializer extends JsonSerializer<String> {
@Override
public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
String finalValue = null;
if (value != null) {
finalValue = value.trim();
if (finalValue.isEmpty()) {
finalValue = null;
}
}
gen.writeObject(finalValue);
}
}
在主bean定义中,属性定义如下——
public class SampleBean {
private Long id;
@JsonSerialize(using = StringSerializer.class)
@JsonInclude(Include.NON_NULL)
private String attribute1;
@JsonSerialize(using = StringSerializer.class)
@JsonInclude(Include.NON_NULL)
private String attribute2;
//Getters and setters
}
在自定义序列化程序启动的情况下,不忽略非空值。
例如:
SampleBean bean = new SampleBean();
bean.setId(1L);
bean.setAttribtute1("abc");
bean.setAttribtute2(" ");
new ObjectMapper().writeValueAsString(bean);
writeValueAsString 的输出: {"id": 1, "attribute1": "abc", "attribute2": null}
由于我在属性 2 中有 @JsonInclude(Include.NON_NULL) ,因此预期的输出如下。{“id”:1,“attribute1”:“abc”}
有没有办法做到这一点?