有一个dto类。那里有一个布尔字段。我想在另一个类中获取此字段,并希望将此字段设置为set string(yes / no)而不是boolean(true / false)
在dto中我有这个。
//dto class
@ExportField(columnName = "K", headerName = "export.available")
private Boolean isAvailable;
我转换成了这个
@JsonDeserialize(using=StringBooleanDeserializer.class)
@ExportField(columnName = "K", headerName = "export.available")
private Boolean isAvailable;
这是我的反序列化课程
public class StringBooleanDeserializer extends JsonDeserializer<Boolean> {
protected static final String NO = "no";
protected static final String YES = "yes";
@Override
public Boolean deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
String text = jsonParser.getText();
if(YES.equals(text)) return false;
return true;
}
}
在另一个班级我打电话给dto
Dto dto = Dto()
;
.setIsAvailable(variant.isAvailable());
System.out.println(dto.getIsAvailable);
我希望看到字符串,而不是布尔值。实际上我输出这个,而不是系统输出。同样的逻辑。
还是有其他的吗?