使用ajax請求傳送複雜的json資料型別,並解決fastjson解析複雜的json資料型別的問題

原始碼ORACLE發表於2018-12-19

環境: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));
    }

相關文章