环境:springboot框架
页面:使用thymeleaf模板
html页面:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<title>用户登录</title>
<link rel="stylesheet" th:href="@{/css/bootstrap.css}"></link>
<script src="../static/js/jquery-1.7.2.js" type="text/javascript" th:src="@{/js/jquery-1.7.2.js}"></script>
<script type="text/javascript" th:inline="javascript">
function ajaxSubmit(){
var json = {"type":"学生","class":"2016级","obj":[{"user_name":"lisi","password":"123","name":"李四","age":"19"},{"user_name":"wangwu","password":"456","name":"王五","age":"19"}]}
var post={data:JSON.stringify(json)};
$.ajax({
url: [[@{/user/login}]],
type: "POST",
data: post,
dataType: "json",
success: function(data){
alert("解析复杂json数据成功")
},
error:function(err){
alert("解析复杂json数据成功失败")
}
});
}
</script>
</head>
<body class="container">
<br/>
<h1>用户登录</h1>
<br/><br/>
<div class="with:80%">
<button onclick="ajaxSubmit()">提交</button>
</div>
</body>
</html>
java代码:
@PostMapping("/user/login")
@ResponseBody
public void doLogin(Model model,String data){
///String parameter = request.getParameter("data");
//转换成object
JSONObject jsonObj = JSON.parseObject(data);
//获取jsonObj中obj字段并转换为数组;
JSONArray result = jsonObj.getJSONArray("obj");
//把json里面的集合封装到List<User>中去
List<User> links= JSON.parseArray(result.toJSONString(),User.class);
//获取jsonObj中type、class字段;
String type = (String) jsonObj.get("type");
String className = (String) jsonObj.get("class");
System.out.println(">>>>>>>>>>>type>>>>>>>>>>"+type);
System.out.println(">>>>>>>>>>>className>>>>>>>>>>"+className);
for (User user : links) {
System.out.println(user.toString());
}
//集合转换成json数组
List<PaperPlan> list = new ArrayList<PaperPlan>();
JSONArray parseArray = JSONArray.parseArray(JSON.toJSONString(list));
}