这里今天用了两种方法来实现:一、使用@JsonSerialize注解;二、使用AOP拦截返回的参数;
一、使用@JsonSerialize注解:
我们做后端平时经常要对字段进行数据格式校验,但是又是一些重复的代码,若使用工具类,代码会显得很冗余。其实还可以使用@JsonSerialize注解来自定义数据校验。
首先创建一个类其继承JsonSerializer抽象类。并重写serialize方法–里面放处理逻辑。代码如下:
import cn.aiaudit.utils.StringUtils;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
/**
* @author Arthorn2
* @version 1.0
* @date 2020/3/17 13:45
*
* :温度保留一位小数
* JsonSerializer<?>是针对出参即get方法
* JsonDeserializer<?>是针对入参即set方法。
*/
public class temperatureSerialize extends JsonSerializer<String> {
//这里对应的是字段的类型
//s是字段的值
@Override
public void serialize(String s, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
if (StringUtils.hasLength(s)){
//保留一位小数,默认是不会出现字母或其他特殊字符。
jsonGenerator.writeString(String.format("%.1f",Double.valueOf(s)));