0%

Java中JsonSerializer用法

前后端单位不统一时进行转换

问题举例:

后端用的时间单位是Date,前端用的秒

后端用的金额单位是分,前端用的是元

解决方法:
1. 写一个负责转换的类,里面写好规则
1
2
3
4
5
6
7
public class Date2LongSerialize extends JsonSerializer<Date> {

@Override
public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
jsonGenerator.writeNumber(date.getTime() / 1000);
}
}
2. 在返回的参数里加上注解
1
2
3
4
5
6
7
8
9
10
11
12
@Data
@JsonNaming(PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy.class)
public class PledgeDetailItemVO implements Serializable {

private static final long serialVersionUID = 2308418084162500432L;

private String remark;

@JsonSerialize(using = Date2LongSerialize.class)
private Date addTime;
}