1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          18 Ajax、Json以及jackson框架解析json的基本應用

          來源:互聯網轉載 時間:2024-01-29 07:50:30

          1. Ajax

          (1)概念:ASynchronous JavaScript And XML 異步的JavaScript 和 XML

          異步和同步:客戶端和服務器端相互通信的基礎上
            * 客戶端必須等待服務器端的響應。在等待的期間客戶端不能做其他操作。
            * 客戶端不需要等待服務器端的響應。在服務器處理請求的過程中,客戶端可以進行其他的操作。

          Ajax 是一種在無需重新加載整個網頁的情況下,能夠更新部分網頁的技術。 [1]
          通過在后臺與服務器進行少量數據交換,Ajax 可以使網頁實現異步更新。這意味著可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。
          傳統的網頁(不使用 Ajax)如果需要更新內容,必須重載整個網頁頁面。

          (2)jquery實現ajax方式

          <1>$.ajax()

          應用案例

          html頁面

          <!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},                success:function (data) {                    alert(data);                },//響應成功后的回調函數                error:function () {                    alert("出錯啦...")                },//表示如果請求響應出現錯誤,會執行的回調函數                dataType:"text"http://設置接受到的響應數據的格式            });        }            </script>        </head><body>    <input type="button" value="發送異步請求" onclick="fun();">    <input></body></html>

          servlet頁面

          package servlet;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;@WebServlet("/ajaxServlet")public class AjaxServlet extends HttpServlet {    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        //1.獲取請求參數        String username = request.getParameter("username");       /* //處理業務邏輯。耗時        try {            Thread.sleep(5000);        } catch (InterruptedException e) {            e.printStackTrace();        }*/        //2.打印username        System.out.println(username);        //3.響應        response.getWriter().write("hello : " + username);    }    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        this.doPost(request, response);    }}

          <2>$.get() 發送get請求

          * 語法:$.get(url, [data], [callback], [type])
          * 參數:
            * url:請求路徑
            * data:請求參數
            * callback:回調函數
            * type:響應結果的類型

          <!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()發送異步請求            $.get("ajaxServlet",{username:"rose"},function (data) {                alert(data);            },"text");        }            </script>        </head><body>    <input type="button" value="發送異步請求" onclick="fun();">    <input></body></html>

          <3>$.post() 發送post請求

          * 語法:$.post(url, [data], [callback], [type])
          * 參數:
            * url:請求路徑
            * data:請求參數
            * callback:回調函數
            * type:響應結果的類型

          2.JSON

          (1)json概念: JavaScript Object Notation  JavaScript對象表示法

          Person p = new Person();p.setName("張三");p.setAge(23);p.setGender("男");var p = {"name":"張三","age":23,"gender":"男"};

          * json現在多用于存儲和交換文本信息的語法
          * 進行數據的傳輸
          * JSON 比 XML 更小、更快,更易解析。

          (2) 語法:
            <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};        //獲取name的值        //var name = person.name;        var name = person["name"];       // alert(name);        //alert(person);        //2.嵌套格式   {}———> []        var persons = {            "persons": [                {"name": "張三", "age": 23, "gender": true},                {"name": "李四", "age": 24, "gender": true},                {"name": "王五", "age": 25, "gender": false}                ]        };       // alert(persons);        //獲取王五值        var name1 = persons.persons[2].name;       // alert(name1);        //2.嵌套格式   []———> {}        var ps = [{"name": "張三", "age": 23, "gender": true},            {"name": "李四", "age": 24, "gender": true},            {"name": "王五", "age": 25, "gender": false}];        //獲取李四值        //alert(ps);        alert(ps[1].name);    </script></head><body></body></html>

          (3) JSON數據和Java對象的相互轉換

          <1> JSON解析器:
          * 常見的解析器:Jsonlib,Gson,fastjson,jackson

          Jackson解析的速度算是同類框架中最快的,同時也是Spring MVC中內置使用的解析方式。

          <2> Java對象轉換JSON
            1. 使用步驟:
              1. 導入jackson的相關jar包
              2. 創建Jackson核心對象 ObjectMapper
              3. 調用ObjectMapper的相關方法進行轉換
                1. 轉換方法:
                * writeValue(參數1,obj):
                參數1:
                  File:將obj對象轉換為JSON字符串,并保存到指定的文件中
                  Writer:將obj對象轉換為JSON字符串,并將json數據填充到字符輸出流中
                  OutputStream:將obj對象轉換為JSON字符串,并將json數據填充到字節輸出流中
                * writeValueAsString(obj):將對象轉為json字符串

          演示案例1:

          jackson測試類:

          package test;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.ObjectMapper;import domain.Person;import org.junit.Test;import java.io.File;import java.io.FileWriter;public class JacksonTest01 {    //java對象轉為JSon字符串    //使用junit注解進行測試    @Test    public  void test01() throws Exception {        //1.創建Person對象        Person person=new Person();        person.setName("lucky");        person.setAge(25);        person.setGender("man");        //2.創建Jackson的核心對象        ObjectMapper objectMapper=new ObjectMapper();        //3.轉換        /*        * 轉換方法:        * writeValue(參數1,obj)        *   參數1:            File:將obj對象轉換為JSON字符串,并保存到指定的文件中      Writer:將obj對象轉換為JSON字符串,并將json數據填充到字符輸出流中      OutputStream:將obj對象轉換為JSON字符串,并將json數據填充到字節輸出流中        * writeValue(obj) 將對象轉為json字符串        */        String json = objectMapper.writeValueAsString(person);        System.out.println(json); //控制臺輸出: {"name":"lucky","age":25,"gender":"man"}        //將數據寫到指定的路徑中        objectMapper.writeValue(new File("d://jsonoutput_file.txt"),person);        //將數據關聯到writer中        objectMapper.writeValue(new FileWriter("d://jsonoutput_writer.txt"),person);        //將數據關聯到outputstream中        objectMapper.writeValue(new FileWriter("d://jsonoutput_outputstream.txt"),person);    }}

          Person類

          package domain;public class Person {    private  String name;    private int age;    private String gender;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public String getGender() {        return gender;    }    public void setGender(String gender) {        this.gender = gender;    }    @Override    public String toString() {        return "Person{" +                "name='" + name + '\'' +                ", age=" + age +                ", gender='" + gender + '\'' +                '}';    }}

            2. 注解:
              1. @JsonIgnore:排除屬性。
              2. @JsonFormat:屬性值得格式化
                * @JsonFormat(pattern = "yyyy-MM-dd")

            3. 復雜java對象轉換
              1. List:數組
              2. Map:對象格式一致

          演示案例2:

          package test;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.ObjectMapper;import domain.Person;import org.junit.Test;import java.io.File;import java.io.FileWriter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class JacksonTest01 {    //java對象轉為JSon字符串    //使用junit注解進行測試    @Test    public  void test01() throws Exception {        //1.創建Person對象        Person person=new Person();        person.setName("lucky");        person.setAge(25);        person.setGender("man");        //2.創建Jackson的核心對象        ObjectMapper objectMapper=new ObjectMapper();        //3.轉換        /*        * 轉換方法:        * writeValue(參數1,obj)        *   參數1:            File:將obj對象轉換為JSON字符串,并保存到指定的文件中      Writer:將obj對象轉換為JSON字符串,并將json數據填充到字符輸出流中      OutputStream:將obj對象轉換為JSON字符串,并將json數據填充到字節輸出流中        * writeValue(obj) 將對象轉為json字符串        */        String json = objectMapper.writeValueAsString(person);        System.out.println(json); //控制臺輸出: {"name":"lucky","age":25,"gender":"man"}        //將數據寫到指定的路徑中        objectMapper.writeValue(new File("d://jsonoutput_file.txt"),person);        //將數據關聯到writer中        objectMapper.writeValue(new FileWriter("d://jsonoutput_writer.txt"),person);        //將數據關聯到outputstream中        objectMapper.writeValue(new FileWriter("d://jsonoutput_outputstream.txt"),person);    }    @Test    public  void test02() throws Exception {        //1.創建Person對象        Person person=new Person();        person.setName("lucky");        person.setAge(25);        person.setGender("man");        Person person1=new Person();        person1.setName("linda");        person1.setAge(28);        person1.setGender("woman");        Person person2=new Person();        person2.setName("tom");        person2.setAge(31);        person2.setGender("man");        List<Person> list=new ArrayList<>();        list.add(person);        list.add(person1);        list.add(person2);        //2.創建Jackson的核心對象,List集合轉為json        ObjectMapper objectMapper=new ObjectMapper();        String json_list = objectMapper.writeValueAsString(list);        System.out.println(json_list);        //控制臺輸出為:        //[{"name":"lucky","age":25,"gender":"man"},{"name":"linda","age":28,"gender":"woman"},{"name":"tom","age":31,"gender":"man"}]    }    @Test    public  void test03() throws Exception {        Map<String,Object> map=new HashMap<>();        map.put("name","lucky");        map.put("age",25);        map.put("gender","man");        //Map轉換json        ObjectMapper mapper=new ObjectMapper();        String json = mapper.writeValueAsString(map);        System.out.println(json);        //控制臺輸出:        //{"gender":"man","name":"lucky","age":25}    }}

          <3>JSON轉為Java對象
            1. 導入jackson的相關jar包
            2. 創建Jackson核心對象 ObjectMapper
            3. 調用ObjectMapper的相關方法進行轉換
              1. readValue(json字符串數據,Class)

          @Test    public  void test04() throws Exception {        //1.初始化json數據        String json="{\"gender\":\"man\",\"name\":\"lucky\",\"age\":25}";        //2.創建Jackson的核心對象        ObjectMapper objectMapper=new ObjectMapper();        //3.轉換為java對象        Person person = objectMapper.readValue(json, Person.class);        System.out.println(person);        //控制臺輸出:        //Person{name='lucky', age=25, gender='man'}    }
          標簽:18ajax-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          北京有幾個長途汽車站?北京有10個長途站,四惠長途站在東四環四惠橋東南角的汽車總站東側,是一個很大的。六里橋長途站在六里橋西南3400米,很大。趙公口長途站在南三環趙公口橋西南角,很大的一個。木樨園長途站在南三環木樨園立交橋南4500米,路的東側,比較大。李澤橋是位于西三環李澤橋東北角的一座中型長途車站。八分是一個中型的長途車站,在大望路大望橋南3400米,路的東側。蓮花池是六里橋東300米路北側...

          蘋果怎樣添加軟件源?1. 越獄后第一次打開Cydia需要很長時間才能加載,等待設備重新啟動后再打開Cydia;2。打開Cydia后,單擊下面的“軟件源”;3。單擊右上角的“編輯添加”;4。在輸入框中輸入源地址。如果輸入ACE assistant的源地址:apt.so/I4工具輸入后,單擊添加源;5。將驗證URL,并在通過后自動安裝源代碼。等待完成后,點擊“返回Cydia”6。添加之后,您可以在軟件...

          700Bike創始人社交平臺曝光飛機鄰座要求其道歉,你怎么看?張向東,換個說法吧。如果你是對方,為了炒作你的狗屁自行車,借口考慮所有乘客的安全,你可以發展微博,侵犯對方肖像權,你哪里能高貴?不過,飛機上帶手機的人也確實是先搞錯了700Bike創始人發博曝光領座女,飛機上用手機到底有多大影響?手機發射無線電波!飛機在飛行中通過無線電通信塔導航,手機無線電會干擾飛機的無線電波,干擾GPS!飛機在空中飛...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>