国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ajax & axios & json

這篇具有很好參考價(jià)值的文章主要介紹了ajax & axios & json。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

一、ajax

1. 概念

2. 實(shí)現(xiàn)方式

?? (1)原生的JS實(shí)現(xiàn)方式(了解)??

?? ?(2) JQeury實(shí)現(xiàn)方式

二、axios?

1.?axios 介紹

2.?axios特點(diǎn)

3. 官方文檔

4. axios使用

(1) axios的基本使用(發(fā)送get/post請(qǐng)求)

(2)axios基本使用-獲取數(shù)據(jù)

(3)axios基本使用-傳參

(4)axios基本使用-發(fā)布書籍

(5)axios基本使用-全局配置

(6)axios驗(yàn)證用戶名稱是否存在

三、json

1. 概念

2. 語(yǔ)法

? ? ?(1)? ?基本規(guī)則

???(2)獲取數(shù)據(jù)

3.? JSON數(shù)據(jù)和Java對(duì)象的相互轉(zhuǎn)換

?? ?(1)JSON轉(zhuǎn)為Java對(duì)象(jackson)

? ? (2) Java對(duì)象轉(zhuǎn)換JSON(jackson)

? ??(3)fastjson用法


一、ajax

Ajax即Asynchronous Javascript And XML(異步JavaScript和XML)在 2005年被Jesse James Garrett提出的新術(shù)語(yǔ),用來(lái)描述一種使用現(xiàn)有技術(shù)集合的‘新’方法,包括: HTML 或 XHTML, CSS, JavaScript, DOM, XML, XSLT, 以及最重要的XMLHttpRequest。 [3] 使用Ajax技術(shù)網(wǎng)頁(yè)應(yīng)用能夠快速地將增量更新呈現(xiàn)在用戶界面上,而不需要重載(刷新)整個(gè)頁(yè)面,這使得程序能夠更快地回應(yīng)用戶的操作。

參考 原生ajax:AJAX 簡(jiǎn)介 | 菜鳥教程

1. 概念

? ? ? ?ASynchronous JavaScript And XML?? ?異步的JavaScript 和 XML

? ? ? ?同步和異步:客戶端和服務(wù)器端相互通信的基礎(chǔ)上
?? ??? ?* 同步:客戶端必須等待服務(wù)器端的響應(yīng)。在等待的期間客戶端不能做其他操作。
?? ??? ?* 異步:客戶端不需要等待服務(wù)器端的響應(yīng)。在服務(wù)器處理請(qǐng)求的過(guò)程中,客戶端可以進(jìn)行其他的操作。

?? ??? ?Ajax 是一種在無(wú)需重新加載整個(gè)網(wǎng)頁(yè)的情況下,能夠更新部分網(wǎng)頁(yè)的技術(shù)。
?? ??? ?通過(guò)在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,Ajax 可以使網(wǎng)頁(yè)實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下,對(duì)網(wǎng)頁(yè)的某部分進(jìn)行更新。
?? ??? ?傳統(tǒng)的網(wǎng)頁(yè)(不使用 Ajax)如果需要更新內(nèi)容,必須重載整個(gè)網(wǎng)頁(yè)頁(yè)面。

?? ??? ?提升用戶的體驗(yàn)

2. 實(shí)現(xiàn)方式

?? (1)原生的JS實(shí)現(xiàn)方式(了解)??

? //1.創(chuàng)建核心對(duì)象
?? ? var xmlhttp;
?? ? if (window.XMLHttpRequest)
?? ? ??{// code for IE7+, Firefox, Chrome, Opera, Safari
?? ? ? ? ?xmlhttp=new XMLHttpRequest();
?? ? ??}
?? ? ?else
?? ? ? ? ??{// code for IE6, IE5
?? ? ? ? ?xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
?? ? ? ? }


  //2. 建立連接
/*
?? 參數(shù):
?? 1. 請(qǐng)求方式:GET、POST
?? ? ? * get方式,請(qǐng)求參數(shù)在URL后邊拼接。send方法為空參
?? ? ? * post方式,請(qǐng)求參數(shù)在send方法中定義
?? 2. 請(qǐng)求的URL:
?? 3. 同步或異步請(qǐng)求:true(異步)或 false(同步)
?? ?
?? ? */
?? ? ? ? ? ? ? ?xmlhttp.open("GET","ajaxServlet?username=tom",true);
?? ?
?//3.發(fā)送請(qǐng)求
?? ? ? ? ? ? ? ?xmlhttp.send();
?? ?
//4.接受并處理來(lái)自服務(wù)器的響應(yīng)結(jié)果
?? ? ? ? ? ? ? ?//獲取方式 :xmlhttp.responseText
?? ? ? ? ? ? ? ?//什么時(shí)候獲取?當(dāng)服務(wù)器響應(yīng)成功后再獲取
?? ?
?? ? ? ? ? ? ? ?//當(dāng)xmlhttp對(duì)象的就緒狀態(tài)改變時(shí),觸發(fā)事件onreadystatechange。
?? ? ? ? ? ? ? ?xmlhttp.onreadystatechange=function()
?? ? ? ? ? ? ? ?{
?? ? ? ? ? ? ? ? ? ?//判斷readyState就緒狀態(tài)是否為4,判斷status響應(yīng)狀態(tài)碼是否為200
?? ? ? ? ? ? ? ? ? ?if (xmlhttp.readyState==4 && xmlhttp.status==200)
?? ? ? ? ? ? ? ? ? ?{
?? ? ? ? ? ? ? ? ? ? ? //獲取服務(wù)器的響應(yīng)結(jié)果
?? ? ? ? ? ? ? ? ? ? ? ?var responseText = xmlhttp.responseText;
?? ? ? ? ? ? ? ? ? ? ? ?alert(responseText);
?? ? ? ? ? ? ? ? ? ?}
?? ? ? ? ? ? ? ?}

?? ?(2) JQeury實(shí)現(xiàn)方式

? ? ? ?a.? $.ajax()

?? ??? ??? ?* 語(yǔ)法:$.ajax({鍵值對(duì)});

 ?             //使用$.ajax()發(fā)送異步請(qǐng)求
?? ? ? ? ? ? ? ?$.ajax({
?? ? ? ? ? ? ? ? ? ?url:"ajaxServlet1111" , // 請(qǐng)求路徑
?? ? ? ? ? ? ? ? ? ?type:"POST" , //請(qǐng)求方式
?? ? ? ? ? ? ? ? ? ?//data: "username=jack&age=23",//請(qǐng)求參數(shù)
?? ? ? ? ? ? ? ? ? ?data:{"username":"jack","age":23},
?? ? ? ? ? ? ? ? ? ?success:function (data) {
?? ? ? ? ? ? ? ? ? ? ? ?alert(data);
?? ? ? ? ? ? ? ? ? ?},//響應(yīng)成功后的回調(diào)函數(shù)
?? ? ? ? ? ? ? ? ? ?error:function () {
?? ? ? ? ? ? ? ? ? ? ? ?alert("出錯(cuò)啦...")
?? ? ? ? ? ? ? ? ? ?},//表示如果請(qǐng)求響應(yīng)出現(xiàn)錯(cuò)誤,會(huì)執(zhí)行的回調(diào)函數(shù)
?? ?
?? ? ? ? ? ? ? ? ? ?dataType:"text"http://設(shè)置接受到的響應(yīng)數(shù)據(jù)的格式
?? ? ? ? ? ? ? ?});

?? ??? ?b. $.get():發(fā)送get請(qǐng)求

?? ??? ??? ?* 語(yǔ)法:$.get(url, [data], [callback], [type])
?? ??? ??? ??? ?* 參數(shù):
?? ??? ??? ??? ??? ?* url:請(qǐng)求路徑
?? ??? ??? ??? ??? ?* data:請(qǐng)求參數(shù)
?? ??? ??? ??? ??? ?* callback:回調(diào)函數(shù)
?? ??? ??? ??? ??? ?* type:響應(yīng)結(jié)果的類型ajax & axios & json,ajax,axios,json

?c.? $.post():發(fā)送post請(qǐng)求
?? ??? ??? ?* 語(yǔ)法:$.post(url, [data], [callback], [type])
?? ??? ??? ??? ?* 參數(shù):
?? ??? ??? ??? ??? ?* url:請(qǐng)求路徑
?? ??? ??? ??? ??? ?* data:請(qǐng)求參數(shù)
?? ??? ??? ??? ??? ?* callback:回調(diào)函數(shù)
?? ??? ??? ??? ??? ?* type:響應(yīng)結(jié)果的類型ajax & axios & json,ajax,axios,json

二、axios?

1.?axios 介紹

(1)axios 是一個(gè)專注于網(wǎng)絡(luò)請(qǐng)求的庫(kù),核心負(fù)責(zé)發(fā)請(qǐng)求和拿數(shù)據(jù)

(2)axios,是一個(gè)基于promise的網(wǎng)絡(luò)請(qǐng)求庫(kù),作用于node.js和瀏覽器中,它是 isomorphic 的(即同一套代碼可以運(yùn)行在瀏覽器和node.js中)。在服務(wù)端它使用原生node.js http模塊, 而在客戶端 (瀏覽端) 則使用XMLHttpRequest。

2.?axios特點(diǎn)

  • 支持客戶端發(fā)送Ajax請(qǐng)求

  • 支持服務(wù)端Node.js發(fā)送請(qǐng)求

  • 支持Promise相關(guān)用法

  • 支持請(qǐng)求和響應(yīng)的攔截器功能

  • 自動(dòng)轉(zhuǎn)換JSON數(shù)據(jù)

  • axios 底層還是原生js實(shí)現(xiàn), 內(nèi)部通過(guò)Promise封裝的

3. 官方文檔

axios文檔http://www.axios-js.com/

Axios 中文文檔 | Axios 中文網(wǎng) | Axios 是一個(gè)基于 promise 的網(wǎng)絡(luò)請(qǐng)求庫(kù),可以用于瀏覽器和 node.js

4. axios使用

(1) axios的基本使用(發(fā)送get/post請(qǐng)求)

引入: 下載axios, 引入后才能使用

頁(yè)面引入axios cdn依賴

?<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
axios({
  method: '請(qǐng)求方式', // get post
  url: '請(qǐng)求地址',
  data: {    // 拼接到請(qǐng)求體的參數(shù),  post請(qǐng)求的參數(shù)
    xxx: xxx,
  },
  params: {  // 拼接到請(qǐng)求行的參數(shù), get請(qǐng)求的參數(shù)
   	xxx: xxx 
  }
}).then(res => {
  console.log(res.data) // 后臺(tái)返回的結(jié)果
}).catch(err => {
  console.log(err) // 后臺(tái)報(bào)錯(cuò)返回
})

 
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>axios</title>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <script>
        function mayiktAxios() {
            // 1. 調(diào)用 axios 方法得到的返回值是 Promise 對(duì)象
            axios({
                // 請(qǐng)求方式
                method: 'GET',
                // 請(qǐng)求的地址
                url: 'http://localhost:8080/${pageContext.request.contextPath}/axiosServlet',
                // URL 中的查詢參數(shù)
                params: {
                    name: "mayikt",
                    age: 22
                }
            }).then(function (result) {
                alert(result.data);
            })

        }
    </script>
</head>
<body>

<input type="button" value="發(fā)送ajax" onclick="mayiktAxios()"/>

</body>
</html>

@WebServlet("/axiosServlet")
public class AxiosServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
    
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();
        String name = req.getParameter("name");
        String age = req.getParameter("age");
        writer.print("mayikt,name:" + name + ",age:" + age);
        writer.close();
    }
}

(2)axios基本使用-獲取數(shù)據(jù)

ajax & axios & json,ajax,axios,json?

<template>
  <div>
    <p>1. 獲取所有圖書信息</p>
    <button @click="getAllFn">點(diǎn)擊-查看控制臺(tái)</button>
  </div>
</template>

<script>
// 目標(biāo)1: 獲取所有圖書信息
// 1. 下載axios
// 2. 引入axios
// 3. 發(fā)起axios請(qǐng)求
import axios from "axios";
export default {
  methods: {
    getAllFn() {
      axios({
        url: "http://123.57.109.30:3006/api/getbooks",
        method: "GET", // 默認(rèn)就是GET方式請(qǐng)求, 可以省略不寫
      }).then((res) => {
        console.log(res);
      });
      // axios()-原地得到Promise對(duì)象
    },
  }
};
</script>

(3)axios基本使用-傳參

ajax & axios & json,ajax,axios,json

?

<template>
  <div>
    <p>2. 查詢某本書籍信息</p>
    <input type="text" placeholder="請(qǐng)輸入要查詢 的書名" v-model="bName" />
    <button @click="findFn">查詢</button>
  </div>
</template>

<script>
import axios from "axios";
export default {
  data() {
    return {
      bName: ""
    };
  },
  methods: {
    // ...省略了查詢所有的代碼
    findFn() {
      axios({
        url: "/api/getbooks",
        method: "GET",
        params: { // 都會(huì)axios最終拼接到url?后面
            bookname: this.bName
        }
      }).then(res => {
          console.log(res);
      })
    }
  },
};
</script>

(4)axios基本使用-發(fā)布書籍

目標(biāo): 完成發(fā)布書籍功能

功能: 點(diǎn)擊新增按鈕, 把用戶輸入的書籍信息, 傳遞給后臺(tái) – 把結(jié)果打印在控制臺(tái)

ajax & axios & json,ajax,axios,json

?

<template>
  <div>
    <p>3. 新增圖書信息</p>
    <div>
        <input type="text" placeholder="書名" v-model="bookObj.bookname">
    </div>
    <div>
        <input type="text" placeholder="作者" v-model="bookObj.author">
    </div>
    <div>
        <input type="text" placeholder="出版社" v-model="bookObj.publisher">
    </div>
    <button @click="sendFn">發(fā)布</button>
  </div>
</template>

<script>
import axios from "axios";
export default {
  data() {
    return {
      bName: "",
      bookObj: { // 參數(shù)名提前和后臺(tái)的參數(shù)名對(duì)上-發(fā)送請(qǐng)求就不用再次對(duì)接了
          bookname: "",
          author: "",
          publisher: ""
      }
    };
  },
  methods: {
    // ...省略了其他代碼
    sendFn(){
       axios({
           url: "/api/addbook",
           method: "POST",
           data: {
               appkey: "7250d3eb-18e1-41bc-8bb2-11483665535a",
               ...this.bookObj
            // 等同于下面
            // bookname: this.bookObj.bookname,
            // author: this.bookObj.author,
            // publisher: this.bookObj.publisher
           }
       }) 
    }
  },
};
</script>

(5)axios基本使用-全局配置

目標(biāo): 避免前綴基地址, 暴露在邏輯頁(yè)面里, 統(tǒng)一設(shè)置

axios.defaults.baseURL = "http://123.57.109.30:3006"

// 所有請(qǐng)求的url前置可以去掉, 請(qǐng)求時(shí), axios會(huì)自動(dòng)拼接baseURL的地址在前面
getAllFn() {
    axios({
        url: "/api/getbooks",
        method: "GET", // 默認(rèn)就是GET方式請(qǐng)求, 可以省略不寫
    }).then((res) => {
        console.log(res);
    });
    // axios()-原地得到Promise對(duì)象
},

(6)axios驗(yàn)證用戶名稱是否存在

需求:當(dāng)我們用戶輸入用戶名稱之后(會(huì)使用ajax驗(yàn)證用戶名稱是否已經(jīng)存在 如果存在的話 則提示 該用戶名稱是已經(jīng)存在的)

onkeyup---監(jiān)聽用戶輸入完內(nèi)容 走監(jiān)聽方法

@WebServlet("/exUserNameServlet")
public class ExUserNameServlet extends HttpServlet {
    
    private MayikUsertService mayikUsertService = new MayikUsertService();
    
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");
        //1.獲取到用戶輸入的userName參數(shù)值
        String userName = req.getParameter("userName");
        //2.調(diào)用數(shù)據(jù)庫(kù)根據(jù)userName查詢用戶名稱是否存在
        MayiktUserEntity mayiktUserEntity = mayikUsertService.findByUserName(userName);
        PrintWriter writer = resp.getWriter();
        if (mayiktUserEntity != null) {
            writer.print("該用戶" + userName + "已經(jīng)存在的 無(wú)法注冊(cè)!");
        }
        writer.close();
    }
}
<%--
  Created by IntelliJ IDEA.
  User: mayikt
  Date: 2022/6/6
  Time: 17:12
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
    <title>注冊(cè)頁(yè)面</title>
    <form action="/mayikt_session_war_exploded/register" method="post">
        <label>用戶名: </label><input type="text" name="userName" onkeyup="mayiktAxios(this)"/><br>
        <label>密&nbsp&nbsp&nbsp碼: </label><input type="password" name="userPwd"/><br>
        <label>驗(yàn)證碼: </label><input type="text" name="code"/><img id="exchangecode" src="VerifycodeServlet">
        <a id="ecode" href="#">看不清?換一張圖片</a><br>
        <span id="error" style="color: red">${errorMsg}</span>
        <input type="submit" value="注冊(cè)"/>
    </form>
    <script type="text/javascript">
        window.onload = function () {
            //獲取img標(biāo)簽的對(duì)象
            img = document.getElementById("exchangecode");
            img.onclick = function () {
                //加時(shí)間戳,避免瀏覽器緩存
                var date = new Date().getTime()
                img.src = "VerifycodeServlet?" + date;
            }
            //獲取a標(biāo)簽的對(duì)象
            ec = document.getElementById("ecode");
            ec.onclick = function () {
                //加時(shí)間戳
                var date = new Date().getTime()
                img.src = "VerifycodeServlet?" + date;
            }
        }

    </script>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <script>
        function mayiktAxios(object) {
            // 1.接受用戶輸入的userName
            var userName = object.value;
            // 2.使用Axios 發(fā)送ajax請(qǐng)求驗(yàn)證 userName是否存在的
            axios({
                // 請(qǐng)求方式
                method: 'GET',
                // 請(qǐng)求的地址
                url: 'http://localhost:8080${pageContext.request.contextPath}/exUserNameServlet',
                // URL 中的查詢參數(shù)
                params: {
                    userName: userName,
                }
            }).then(function (result) {
                //定位 span  id 名稱 error 修改
                document.getElementById("error").innerText = result.data;
            })
        }
    </script>
</head>
</html>

三、json

1. 概念

? ? JavaScript Object Notation?? ??? ?JavaScript對(duì)象表示法

?? ?Person p = new Person();
?? ?p.setName("張三");
?? ?p.setAge(23);
?? ?p.setGender("男");

?? ?var p = {"name":"張三","age":23,"gender":"男"};

?? ?* json現(xiàn)在多用于存儲(chǔ)和交換文本信息的語(yǔ)法
?? ?* 進(jìn)行數(shù)據(jù)的傳輸
?? ?* JSON 比 XML 更小、更快,更易解析。

2. 語(yǔ)法

? ? ?(1)? ?基本規(guī)則

?? ??? ?* 數(shù)據(jù)在名稱/值對(duì)中:json數(shù)據(jù)是由鍵值對(duì)構(gòu)成的
?? ??? ??? ?* 鍵用引號(hào)(單雙都行)引起來(lái),也可以不使用引號(hào)
?? ??? ??? ?* 值得取值類型:
?? ??? ??? ??? ?1. 數(shù)字(整數(shù)或浮點(diǎn)數(shù))
?? ??? ??? ??? ?2. 字符串(在雙引號(hào)中)
?? ??? ??? ??? ?3. 邏輯值(true 或 false)
?? ??? ??? ??? ?4. 數(shù)組(在方括號(hào)中)?? ?{"persons":[{},{}]}
?? ??? ??? ??? ?5. 對(duì)象(在花括號(hào)中) {"address":{"province":"陜西"....}}
?? ??? ??? ??? ?6. null
?? ??? ?* 數(shù)據(jù)由逗號(hào)分隔:多個(gè)鍵值對(duì)由逗號(hào)分隔
?? ??? ?* 花括號(hào)保存對(duì)象:使用{}定義json 格式
?? ??? ?* 方括號(hào)保存數(shù)組:[]

???(2)獲取數(shù)據(jù)

? ? ? ? a. json對(duì)象.鍵名
? ? ? ? b. json對(duì)象["鍵名"]
? ? ? ? c. 數(shù)組對(duì)象[索引]
? ? ? ? d. 遍歷
?? ??? ??? ??? ? //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}];

? ? ?//獲取ps中的所有值
?? ??? ? ? ? ? ?for (var i = 0; i < ps.length; i++) {
?? ??? ? ? ? ? ? ? ?var p = ps[i];
?? ??? ? ? ? ? ? ? ?for(var key in p){
?? ??? ? ? ? ? ? ? ? ? ?alert(key+":"+p[key]);
?? ??? ? ? ? ? ? ? ?}
?? ??? ? ? ? ? ?}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jsonDemo</title>
    <script>
        // 1.定義json
        var json1 = {name: "mayikt", age: 22, isFlag: true};
        alert(json1.name);
        alert(json1.age);
        alert(json1.isFlag);
        // 2.定義json數(shù)組
        var jsonArr = {code: 200, data: [{name: "mayikt", age: 22}, {name: "meite", age: 22}]};
        alert(jsonArr.code);
        alert(jsonArr.data[0].name);
        var userArr = jsonArr.data;
        for (var i = 0; i < userArr.length; i++) {
            alert(userArr[i].name + "," + userArr[i].age);
        }
    </script>
</head>
<body>

</body>
</html>

3.? JSON數(shù)據(jù)和Java對(duì)象的相互轉(zhuǎn)換

?? ?* JSON解析器:
?? ??? ?* 常見的解析器:Jsonlib,Gson,jackson? ?,?fastjson

?? ?(1)JSON轉(zhuǎn)為Java對(duì)象(jackson)

? ? ? ? (1)?導(dǎo)入jackson的相關(guān)jar包
? ? ? ? (2)創(chuàng)建Jackson核心對(duì)象 ObjectMapper
?? ??? ?(3)調(diào)用ObjectMapper的相關(guān)方法進(jìn)行轉(zhuǎn)換
? ? ? ? ? ? ? ? ? readValue(json字符串?dāng)?shù)據(jù),Class)ajax & axios & json,ajax,axios,json

?ajax & axios & json,ajax,axios,json

?? (2) Java對(duì)象轉(zhuǎn)換JSON(jackson)

? ? ? ? ? 使用步驟:

? ? ? ? ? ? a. 導(dǎo)入jackson的相關(guān)jar包
? ? ? ? ? ? b. 創(chuàng)建Jackson核心對(duì)象 ObjectMapperajax & axios & json,ajax,axios,json
? ? ? ? ? ? c. 調(diào)用ObjectMapper的相關(guān)方法進(jìn)行轉(zhuǎn)換
?? ??? ??? ??? ?(a) 轉(zhuǎn)換方法:

(1) mapper.writeValueAsString(obj):將對(duì)象轉(zhuǎn)為json字符串?

(2) mapper.writeValue(參數(shù)1,obj):
?? ?參數(shù)1:
?? ? ? ? File:將obj對(duì)象轉(zhuǎn)換為JSON字符串,并保存到指定的文件中
?? ? ? ? Writer:將obj對(duì)象轉(zhuǎn)換為JSON字符串,并將json數(shù)據(jù)填充到字符輸出流中
?? ? ? ? OutputStream:將obj對(duì)象轉(zhuǎn)換為JSON字符串,并將json數(shù)據(jù)填充到字節(jié)輸出流中

ajax & axios & json,ajax,axios,json

?ajax & axios & json,ajax,axios,json

ajax & axios & json,ajax,axios,json

(b)注解:

? ? @JsonIgnore:排除屬性。
? ? @JsonFormat:屬性值得格式化

??@JsonIgnore:轉(zhuǎn)換后直接不顯示

ajax & axios & json,ajax,axios,json

ajax & axios & json,ajax,axios,json

ajax & axios & json,ajax,axios,json

?ajax & axios & json,ajax,axios,json

?

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

ajax & axios & json,ajax,axios,json

ajax & axios & json,ajax,axios,json

ajax & axios & json,ajax,axios,json

ajax & axios & json,ajax,axios,json

(c)復(fù)雜java對(duì)象轉(zhuǎn)換
? ? ? ? ? ? ? ? ? ? ?List:數(shù)組
? ? ? ? ? ? ? ? ? ? ?Map:對(duì)象格式一致ajax & axios & json,ajax,axios,json

(3)fastjson用法

文檔:javaweb開發(fā)相關(guān)資料下載.notea

鏈接:有道云筆記

ajax & axios & json,ajax,axios,json文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-611471.html

public class Test01 {
    public static void main(String[] args) {
        //1.將數(shù)據(jù)對(duì)象變成json(字符串類型)
        MayiktUserEntity user1 = new MayiktUserEntity(1, "mayikt", "mayikt");
        MayiktUserEntity user2 = new MayiktUserEntity(1, "mayikt", "mayikt");
        String json1 = JSONObject.toJSONString(user1);
        System.out.println(json1);
        //2.嵌套json
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("code", 200);
        jsonObject.put("msg", "ok");
        //data值 數(shù)組類型
        ArrayList<MayiktUserEntity> mayiktUserEntities = new ArrayList<>();
        mayiktUserEntities.add(user1);
        mayiktUserEntities.add(user2);
        jsonObject.put("data", mayiktUserEntities);
        System.out.println(jsonObject.toJSONString());
    }
}


public class Test02 {
    public static void main(String[] args) {
        String jsonStr = "{\"msg\":\"ok\",\"code\":200,\"data\":[{\"id\":1,\"userName\":\"mayikt\",\"userPwd\":\"mayikt\"},{\"id\":1,\"userName\":\"mayikt\",\"userPwd\":\"mayikt\"}]}";
        // string類型-----jsonobject----jsonobject
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);
//        Integer code = (Integer) jsonObject.get("code");
        Integer code = jsonObject.getInteger("code");
        String msg = jsonObject.getString("msg");
        System.out.println(code + "," + msg);
        JSONArray data = jsonObject.getJSONArray("data");
        for (int i = 0; i < data.size(); i++) {
            JSONObject object = (JSONObject) data.get(i);
            Integer id = object.getInteger("id");
            String userName = object.getString("userName");
            String userPwd = object.getString("userPwd");
            MayiktUserEntity mayiktUserEntity = new MayiktUserEntity(id, userName, userPwd);
            System.out.println(mayiktUserEntity);
        }
    }
}

public class Test03 {
    public static void main(String[] args) {
        String jsonStr = "{\"msg\":\"ok\",\"code\":200,\"data\":[{\"id\":1,\"userName\":\"mayikt\",\"userPwd\":\"mayikt\"},{\"id\":1,\"userName\":\"mayikt\",\"userPwd\":\"mayikt\"}]}";
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);
        Result result = JSONObject.parseObject(jsonStr, Result.class);
        // java序列化技術(shù) 將 json變成對(duì)象
        System.out.println(result);
    }
}

public class Result {
    private Integer code;
    private String msg;
    private List<MayiktUserEntity> data;

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }


    public List<MayiktUserEntity> getData() {
        return data;
    }

    public void setData(List<MayiktUserEntity> data) {
        this.data = data;
    }

    @Override
    public String toString() {
        return "Result{" +
                "code=" + code +
                ", msg='" + msg + '\'' +
                ", data=" + data +
                '}';
    }
}
    axios({
        method: "post",
        url: "${pageContext.request.contextPath}/user/addUser",
        data: JSON.stringify(userList),
        headers: {
            'Content-Type': 'application/json;charset=UTF-8'
        }
    }).then(resp => {

    })

到了這里,關(guān)于ajax & axios & json的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Ajax】如何通過(guò)axios發(fā)起Ajax請(qǐng)求

    【Ajax】如何通過(guò)axios發(fā)起Ajax請(qǐng)求

    ?? 作者簡(jiǎn)介: 前端新手學(xué)習(xí)中。 ?? 作者主頁(yè): 作者主頁(yè)查看更多前端教學(xué) ?? 專欄分享:css重難點(diǎn)教學(xué) ? Node.js教學(xué) 從頭開始學(xué)習(xí) ? ajax學(xué)習(xí) Axios是專注于網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)求的庫(kù),相比于原生的XMLHttpRequest對(duì)象,axios簡(jiǎn)單易用。相比于Jquery,axios更加輕量化,只專注于網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)

    2024年02月02日
    瀏覽(36)
  • 【AJAX框架】AJAX入門與axios的使用

    【AJAX框架】AJAX入門與axios的使用

    在現(xiàn)代Web開發(fā)中,異步JavaScript和XML(AJAX)已經(jīng)成為不可或缺的技術(shù)之一。AJAX使得網(wǎng)頁(yè)能夠在不刷新整個(gè)頁(yè)面的情況下與服務(wù)器進(jìn)行數(shù)據(jù)交互,為用戶提供更加流暢和動(dòng)態(tài)的體驗(yàn)。本文將介紹AJAX的基本概念,并深入探討如何使用axios這一強(qiáng)大的JavaScript庫(kù)進(jìn)行AJAX請(qǐng)求。 AJAX的核

    2024年01月24日
    瀏覽(25)
  • 【Ajax】筆記-Axios與函數(shù)發(fā)送AJAX請(qǐng)求

    【Ajax】筆記-Axios與函數(shù)發(fā)送AJAX請(qǐng)求

    1、Axios是一個(gè)基于Promise的HTTP庫(kù),而Ajax是對(duì)原生XHR的封裝; 2、Ajax技術(shù)實(shí)現(xiàn)了局部數(shù)據(jù)的刷新,而Axios實(shí)現(xiàn)了對(duì)ajax的封裝。 ajax: 本身是針對(duì)MVC的編程,不符合現(xiàn)在前端MVVM的浪潮 基于原生的XHR開發(fā),XHR本身的架構(gòu)不清晰,已經(jīng)有了fetch的替代方案 JQuery整個(gè)項(xiàng)目太大,單純使用

    2024年02月16日
    瀏覽(19)
  • 【AJAX】axios發(fā)送請(qǐng)求

    引入axios 以下是axios的GET請(qǐng)求格式: 以下是axios的POST請(qǐng)求格式: 注意:params中的鍵值對(duì)數(shù)據(jù)是拼接在url上,無(wú)論是post還是get請(qǐng)求。 axios

    2024年02月13日
    瀏覽(31)
  • AJAX與axios框架

    AJAX與axios框架

    提示:這里可以添加本文要記錄的大概內(nèi)容: 通過(guò) ajax 進(jìn)行前后端交互 此項(xiàng)目用到了javaweb知識(shí) 首先創(chuàng)建JavaWeb項(xiàng)目編寫代碼: 運(yùn)行結(jié)果: 接下來(lái)創(chuàng)建vue項(xiàng)目 創(chuàng)建完項(xiàng)目進(jìn)入安裝Axios框架 npm i axios 打開根組件刪掉全部代碼重新生成 在template標(biāo)簽內(nèi)加上一個(gè)按鈕 接下來(lái)在met

    2024年02月16日
    瀏覽(17)
  • 9-AJAX-下-axios

    上古瀏覽器頁(yè)面在向服務(wù)器請(qǐng)求數(shù)據(jù)時(shí),因?yàn)榉祷氐氖钦麄€(gè)頁(yè)面的數(shù)據(jù),頁(yè)面都會(huì)強(qiáng)制刷新一下,這對(duì)于用戶來(lái)講并不是很友好。并且我們只是需要修改頁(yè)面的部分?jǐn)?shù)據(jù),但是從服務(wù)器端發(fā)送的卻是整個(gè)頁(yè)面的數(shù)據(jù),十分消耗網(wǎng)絡(luò)資源。而我們只是需要修改頁(yè)面的部分?jǐn)?shù)據(jù),

    2024年02月07日
    瀏覽(22)
  • axios和Ajax

    官網(wǎng):https://axios-http.com/zh/ CDN:https://cdn.bootcdn.net/ajax/libs/axios/0.21.1/axios.min.js axios是一個(gè)請(qǐng)求庫(kù),在瀏覽器環(huán)境中,它封裝了XHR,提供更加便捷的API發(fā)送請(qǐng)求 axios的基本用法為: axios允許開發(fā)者先創(chuàng)建一個(gè)實(shí)例,后續(xù)通過(guò)使用實(shí)例進(jìn)行請(qǐng)求 這樣做的好處是可以預(yù)先進(jìn)行某些配

    2024年02月05日
    瀏覽(18)
  • axios ( ajax pro )

    axios ( ajax pro )

    根據(jù)我的理解就是對(duì)于原生ajax的一個(gè)封裝,以達(dá)到方便使用異步刷新的目的。 ajax是什么呢?(Asynchronous JavaScript And XML,異步的JavaScript和XML) 首先要理解異步刷新,簡(jiǎn)單來(lái)說(shuō)就是一個(gè)對(duì)于一個(gè)前端頁(yè)面,總體的頁(yè)面內(nèi)容不刷新,局部的頁(yè)面進(jìn)行刷新,比如:大家都進(jìn)行過(guò)網(wǎng)購(gòu)

    2024年02月16日
    瀏覽(18)
  • Ajax和axios基礎(chǔ)

    Ajax和axios基礎(chǔ)

    Asynchronous JavaScript And XML 異步的JavaScript和XML 作用 數(shù)據(jù)交換: 通過(guò)Ajax可以給服務(wù)器發(fā)送請(qǐng)求,服務(wù)器將數(shù)據(jù)直接響應(yīng)回給瀏覽器. 異步交互: 可以在不重新加載整個(gè)頁(yè)面的情況下,與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁(yè)的技術(shù). 同步和異步 同步發(fā)送請(qǐng)求: 瀏覽器發(fā)送請(qǐng)求給服務(wù)器,服務(wù)

    2024年04月28日
    瀏覽(19)
  • Ajax 與 Axios 異步請(qǐng)求

    1. 網(wǎng)頁(yè)中如何請(qǐng)求數(shù)據(jù) 2. 資源的請(qǐng)求方式 客戶端請(qǐng)求服務(wù)器時(shí),請(qǐng)求的方式有很多種,最常見的兩種請(qǐng)求方式分別為 get 和 post 請(qǐng)求。 get 請(qǐng)求通常用于獲取服務(wù)端資源(向服務(wù)器要資源) post 請(qǐng)求通常用于向服務(wù)器提交數(shù)據(jù)(往服務(wù)器發(fā)送資源) 1. 什么是Ajax 2. 為什么要學(xué)

    2024年03月28日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包