天天看點

22 Ajax&Json

一、Ajax                                                                                                                              

    1.概念:

         ASynchronous JavaScript And XML    異步的JavaScript 和 XML    

    2.同步和異步

            1.同步

                用戶端請求服務端,必須等待服務端響應過來資料,用戶端才能做其他操作

            2.異步加載(Ajax)

                用戶端請求服務端,不需要等到服務端響應到資料時,就可以做其他操作            

    3.實作方式                                                                                                                                            

            1.  $.ajxa()實作-------------------->可以設定同步或者異步加載

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="js/jquery-3.3.1.min.js"></script>

    <script>

        //定義方法

        function  fun() {

            //使用$.ajax()發送異步請求

            $.ajax({

                url:"ajaxServlet" , // 請求路徑

                type:"POST" , //請求方式

                //data: "username=jack&age=23",//請求參數

                data:{"username":"jack","age":23},//一般是json格式

                success:function (data) {

                    alert(data);

                },//響應成功後的回調函數

                error:function () {

                    alert("出錯啦...")

                },//表示如果請求響應出現錯誤,會執行的回調函數

                dataType:"json"//設定接受到的響應資料的格式

            });

        }

    </script>

</head>

<body>

    <input type="button" value="發送異步請求" onclick="fun();"/>

</body>

</html>

     2. $.get()----------------------------------->隻能進行異步加載,不能同步加載

$.get("url",{"請求的參數名":"參數值","請求的參數名":"請求的參數值",...},function(data) {

 },"json");

    3.$.post()----------------------------------->隻能進行異步加載,不能同步加載

$.post("url",{"請求的參數名":"參數值","請求的參數名":"請求的參數值",...},function(data) {

},"json");

二、json                                                                                                                                

    可以了解為:json就是一個js對象

    1. 基本規則                                                                                                                                            

        * 資料在名稱/值對中:json資料是由鍵值對構成的

            * 鍵用引号(單雙都行)引起來,也可以不使用引号

            * 值的取值類型:

                1. 數字(整數或浮點數)-------->注意:不需要引号

                2. 字元串(在雙引号中)

                3. 邏輯值(true 或 false)------->注意:不需要引号

                4. 數組(在方括号中)        {"persons":[{},{}]}

                5. 對象(在花括号中)        {"address":{"province":"陝西"....}}

                6. null

        * 資料由逗号分隔:多個鍵值對由逗号分隔

        * 花括号儲存對象:使用{}定義json 格式

        * 方括号儲存數組:[]

    2.擷取資料                                                                                                                                        

        1. json對象.鍵名

        2. json對象["鍵名"]

        3. 數組對象[索引]

        4.周遊擷取

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script>         

        //1.定義基本格式

        var person = {"name": "張三", age: 23, 'gender': true};

        var ps = [{"name": "張三", "age": 23, "gender": true},

            {"name": "李四", "age": 24, "gender": true},

            {"name": "王五", "age": 25, "gender": false}];

        //擷取person對象中所有的鍵和值

        for (var key in person) {

            alert(key + ":" + person[key]);

        }

        //擷取ps中的所有的鍵和值

        for (var i = 0; i < ps.length; i++) {

            for (var key in ps[i]) {

                alert(key + ":" + ps[i][key]);

            }

        }

    </script>

</head>

<body>

</body>

</html>

3.json解析器                                                                                                                                            

jackson-Java對象轉換JSON-----------------------------------------------------------------------------------------------------

    1. 轉換方法ObjectMapper類的方法:

                    * writeValue(參數1,obj):

                        參數1:

                            File:将obj對象轉換為JSON字元串,并儲存到指定的檔案中

                            Writer:将obj對象轉換為JSON字元串,并将json資料填充到字元輸出流中

                            OutputStream:将obj對象轉換為JSON字元串,并将json資料填充到位元組輸出流中

                    * writeValueAsString(obj):将對象轉為json字元串

                2. 注解:

                    1. @JsonIgnore:排除屬性。

                    2. @JsonFormat:屬性值得格式化

                        * @JsonFormat(pattern = "yyyy-MM-dd")

jackson-Java對象轉換JSON-----------------------------------------------------------------------------------------------------

jackson-JSON轉為Java對象-----------------------------------------------------------------------------------------------------

        1. 導入jackson的相關jar包

        2. 建立Jackson核心對象 ObjectMapper

        3. 調用ObjectMapper的相關方法進行轉換

            1. readValue(json字元串資料,Class)

jackson-JSON轉為Java對象----------------------------------------------------------------------------------------------------

 1.常見的解析器:

        Jsonlib,Gson(谷歌),fastjson(阿裡),jackson(springmvc)

    我們使用jackson

    jackson使用步驟:                                                                                                                                                            

        1.導入jackson的相關jar包(注意:導入以下三個)

22 Ajax&amp;Json

    2. 建立Jackson核心對象 ObjectMapper

    3. 調用ObjectMapper的相關方法進行轉換    

            writeValueAsString(obj):将對象轉為json字元串------>obj可以是java對象,list,map...

繼續閱讀