json报文中一般都是字符串。 如果直接映射到实体的话,在@RequestBody入参的时候会自动转换。
但是如果先映射到一个实体,再对应到另外一个实体,那么就需要手动转换了。
虽然转换很简单,但是总结下,有助于提高效率。

字符串转换为Integer:

public static Integer stringToInteger(String string){
if(!StringUtils.isEmpty(string)){
return Integer.parseInt(string);
}else{
return null;
}
}

字符串转换为Long:

public static Long stringToLong(String string){
if(!StringUtils.isEmpty(string)){
return Long.parseLong(string);
}else{
return null;
}
}

字符串转换为Date:

public static SimpleDateFormat simpleDateFormat 
=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

public static Date stringToDate(String string){
if(!StringUtils.isEmpty(string)){
Date date = null;
try {
date = simpleDateFormat.parse(string);
} catch (ParseException e) {
e.printStackTrace();
// 这里可以补逻辑 日志 继续抛异常等
}
return date;
}else{
return null;
}
}

有的时候数据库的时间存的是Long类型,但也不是毫秒计数法,居然是 年月日时分秒毫秒的 long串,这里也说下转换方法:

// 将 "2008-01-01 12:00:00" 字符串转为   20080101120000999  这样的long串
public static Long stringToDateLong(String string){
if(!StringUtils.isEmpty(string)){
Long dateLong = null;
try {
Date date = simpleDateFormat.parse(string);
String format = longSimpleDateFormat.format(date);
dateLong = Long.parseLong(format);
} catch (ParseException e) {
e.printStackTrace();
// 这里可以补逻辑 日志 继续抛异常等
}
return dateLong;
}else{
return null;
}
}