将boolean反序列化为字符串

时间:2017-06-09 18:46:32

标签: java serialization

有一个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);

我希望看到字符串,而不是布尔值。实际上我输出这个,而不是系统输出。同样的逻辑。

还是有其他的吗?

0 个答案:

没有答案