有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何通过注释有条件地使用自定义JsonSerializer

我已经编写了一个定制的JsonSerializer来将BigDecimal转换成字符串。我想使用@JsonSerialize注释来调用这个序列化程序,但是有条件地,也就是说,如果某个特定的布尔值仅为true,那么应该进行BigDecimal到String的转换,否则不应该

我有一个POJO,它有一个大的decimalprice字段。发送此POJO是为了响应两个rest调用:

  • 预期价格字段为数值//因此@JsonSerialize应该 不跑
  • 期望价格字段为字符串值//so@JsonSerialize 应该跑

有人能建议我如何实现它吗

下面是我编写的自定义序列化程序的代码片段:

public class BigDecimalToStringSerializer extends JsonSerializer<BigDecimal> {

    @Override
    public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers) throws IOException,
        JsonProcessingException {
        gen.writeString(value.toString());
    }

}

具有价格字段的POJO文件:

JsonInclude(Include.NON_NULL)
public class Price{
    private BigDecimal price;
    public Price() {
    }
    @JsonSerialize(using = BigDecimalToStringSerializer.class)
    public BigDecimal getPrice() {
        return price;
    }   
    public void setPrice(BigDecimal pric) {
        this.price  = price;
    }
}

提前多谢


共 (0) 个答案