项目场景:
项目场景:一个普通的前端请求后端处理数据的接口,典型的ssm架构;
问题描述
前端请求传参参数转为json串,后端@PostMapping注解接收,
//model类
import lombok.Data;
@Data
public class QueryBusinessModel {
private String qBegntime;
private String qEndtime;
private String ddd;
private String sss;
}
//model类
import lombok.Data;
@Data
public class QueryProcessModel{
....
}
//model类
public class BusinessVO<RM, PM>
@Comment("请求参数")
private RM requestParameters;
@Comment("业务参数")
private PM processParameters;
//GetOrSet
...
}
//工具类
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.type.TypeFactory;
public class FastJsonUtils {
public static ObjectMapper mapper = new ObjectMapper();
public static <T> T translate(String jsonString, Class<?> parametrized, Class<?>... parameterClasses) {
try {
TypeFactory typeFactory = TypeFactory.defaultInstance();
JavaType javaType = typeFactory.constructParametricType(parametrized, parameterClasses);
return mapper.readValue(jsonString, javaType);
} catch (Exception var5) {
var5.printStackTrace();
return null;
}
}
}
//处理类
public class QueryServiceImpl{
public static ObjectMapper mapper = new ObjectMapper();
//参数为前端传参json
//{"qBegntime":"2024-03-21 10:20:08","qEndtime":"2024-03-21 17:20:08","ddd":"1","sss":"3"}
public stirng service(String model){
QueryBusinessModel model1 = translate(model,BusinessVO.class,
QueryBusinessModel .class,QueryProcessModel.class);
//解析完model1中值qEndtime和qBegntime为null,其他正常
}
}
原因分析:
暂时不清楚,有可能是自定义变量名称有问题,
解决方案:
如果给model类中的值手动加上get/set方法,值正常