Spring boot controller接收手机端传过来的List对象
说明:本人小菜鸟,不喜勿喷!
Java对象和Json之间的互转,一般用的比较多的两个类库是Jackson和Gson,下面记录一下Gson的学习使用。
基础概念:
Serialization:序列化,使Java对象到Json字符串的过程。
Deserialization:反序列化,字符串转换成Java对象
使用Maven管理Gson,pom.xml导入gson的依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3.1</version>
</dependency>
Gson的两个基础方法
toJson();
fromJson();
Gson的创建方式一:直接new Gson对象
// 使用new方法
Gson gson = new Gson();
// toJson 将bean对象转换为json字符串
String jsonStr = gson.toJson(user, User.class);
// fromJson 将json字符串转为bean对象
Student user= gson.fromJson(jsonStr, User.class);
// **序列化List**
String jsonStr2 = gson.toJson(list);
// **反序列化成List时需要使用到TypeToken getType()**
List<User> retList = gson.fromJson(jsonStr2,new TypeToken<List<User>>(){}.getType());
以上为其他博客搜索的有关于Gson的资料,以下为自己项目中的代码:
/**
* 添加打课
*/
@SuppressWarnings("unchecked")
@RequestMapping(value = "/insert", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
@ResponseBody
@LoginRequired
public JacksonData<YcCourseCheck> findAll(@CurrentUser YcUser ycUser, YcCourseCheck ycCourseCheck,
String ycCourseCheckRecordlist ) {
if (RegexUtil.isNull(ycUser)) {
return ResultUtil.error(202, HelpConstants.NOlOGIN);
}
//Gson 将String串转为list对象
Gson gson = new Gson();
Type type = new TypeToken<ArrayList<YcCourseCheckRecord>>() {}.getType();
List<YcCourseCheckRecord> ycCourseCheckRecords = gson.fromJson(ycCourseCheckRecordlist, type);
String rs = ycCourseCheckRecordService.insert(ycCourseCheckRecords, ycCourseCheck);
if (RegexUtil.isNotNull(rs) && rs.equals(YcCourseCheckConstants.SUCCESS)) {
return ResultUtil.success();
}
return ResultUtil.error(204, rs);
}