JsonSerialize 的用法

当我们写接口的时候, 经常遇到his的单位或常量与对方不一致. 比如我们表达boolean用的 true和false, 对方文档用的1和0.

不能直接传. 就转换吧.

使用JsonSerialize的逻辑很简单. 写个通用转换类. 通过注解加到响应类需要转换的字段上.

1
2
3
4
5
6
7
public class NumericBooleanSerializer extends JsonSerializer<Boolean> {
@Override
public void serialize(Boolean b, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
//switch(){}
jsonGenerator.writeNumber(b ? 1 : 0);
}
}
1
2
3
@JsonProperty("status")
@JsonSerialize(using = NumericBooleanSerializer.class)
private boolean BENABLE;
  • 如此, 就实现了当数据库的javabean是boolean类型, 返回对方也会是 1和0.
  • 当his用的数字做业务状态码, 也可以通过此方式转成对方需要的汉字说明