想偷懒在给前端格式化数据时重复写格式转换代码,就用到了com.fasterxml.jackson.annotation.JsonFormat和
com.fasterxml.jackson.databind.annotation.JsonSerialize
日期使用 JsonFormat
double 类型使用 JsonSerialize,但还要自己定义 JsonSerializer的实现类,总体来说还是舒适的
dto类:
@JsonSerialize(using=CustomDoubleSerializer.class)
Double congestIndex;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date yjsjstart;
JsonSerializer的实现类:
public class CustomDoubleSerializer extends JsonSerializer<Double> {
public CustomDoubleSerializer() {
super();
}
@Override
public void serialize(Double value, JsonGenerator jgen, SerializerProvider
provider) throws IOException, JsonGenerationException {
if (null == value) {
//write the word 'null' if there's no value available
jgen.writeNull();
} else {
final String pattern = "###.##";
//final String pattern = "###,###,##0.00";
final DecimalFormat myFormatter = new DecimalFormat(pattern);
final String output = myFormatter.format(value);
jgen.writeNumber(output);
}
}
}
主要资料参考 stackoverflow