javaajax傳遞json的簡單介紹

本文目錄一覽:

如何使用ajax將json傳入後台數據

以下代碼是對$.ajax()的解析:

$.ajax({

type: “POST”, //提交方式

contentType: “application/json; charset=utf-8”, //內容類型

dataType: “json”, //類型

url: “前台地址/後台方法”, //提交的頁面,方法名

data: “parameter”, //參數,如果沒有,可以為null

success: function (data) { //如果執行成功,那麼執行此方法

alert(data.d); //用data.d來獲取後台傳過來的json語句,或者是單純的語句

},

error: function (err) { //如果執行不成功,那麼執行此方法

alert(“err:” + err);

}

});

ajax傳遞json,然後伺服器接受json的代碼編寫

1.ajax發送請求(建議使用jQuery):

$.ajax({

method:post;

url: “你要發送到後台去的地址”,

parameter:你要傳送的數據,

beforeSend:function(){在發送請求之前你要做的事}

afterSend:function(){在發送請求後你想做的事}

success:function(){alert(‘成功了!’)}

});

2.後台處理JSON數據:

1)最基本的原理性解決辦法:JSON不過是通過request對象傳過來的鍵值對而已,直接獲得request對象,去對應的屬性就行了。

2)net.sf.json.JSONObject這個包你可以學習下,也不是很難。

3.關於返回頁面:

你要控制頁面跳轉么?那你使用AJAX干毛啊?使用AJAX就是為了不刷新頁面而把值傳到後台去的。

java如何接收ajax傳遞的json類型的數據

主要是賦值給Map就行。

json數據格式為:

{name:’張三’,age:20}這樣的不是數組時,

在java中new一個Map對象獲取,如

MapString,String map = (MapString,String)request.getParament(“json”);

然後獲取name為:map.get(“name”);

如果json數據為數組:

[{name:’張三’,age:17},{name:’李四’,age:20}]

在java中new一個

ListMapString,String maplist = (ListMapString,String)request.getParament(“json”);

小白求教,java中怎麼獲取ajax發送的json數據

在JS中,一般是使用eval()函數將JSON的字元串解析成JSON數據格式。

測試代碼如下:

var obj = eval(“(“+data+”)」);//轉為json對象                       

alert(“return_code:”+obj[“return_code”]);//彈出json對象return_code屬性

這邊需要注意的是,eval(“(“+data+”)」)要這麼寫,裡面還帶了一對括弧。原因在於:eval本身的問題。 由於json是以」{}」的方式來開始以及結束的,在JS中,它會被當成一個語句塊來處理,所以必須強制性的將它轉換成一種表達式。

servlet怎麼獲取ajax傳過來的json數據

1.原生AJAX代碼

get請求:

//創建xhr,IE低版本不支持

var xhr = new XMLHttpRequest();

//servlet地址

var url=”/Website01/index.view”;

xhr.open(“get”, url, true);

//xhr處理事件,非同步

xhr.onreadystatechange = function() {

if (xhr.readyState == 4 xhr.status == 200) {

//在這裡進行相關處理,通過xhr.responseText獲取後台反饋的文本

}

};

//xhr發送數據

xhr.send();

post請求:

post請求需注意要設置請求頭(setRequestHeader)

xhr.setRequestHeader(「Content-type」, 「application/json」);針對JSON數據

在xhr.send()中寫需要發送的JSON數據,例如:

xhr.send(JSON.stringify(data));1

2.Servlet基礎知識

Servlet是用Java編寫的伺服器端程序。其主要功能在於互動式地瀏覽和修改數據,生成動態Web內容。狹義的Servlet是指Java語言實現的一個介面,廣義的Servlet是指任何實現了這個Servlet介面的類,一般情況下,人們將Servlet理解為後者。

Servlet運行於支持Java的應用伺服器中(Tomcat)。從原理上講,Servlet可以響應任何類型的請求,但絕大多數情況下Servlet只用來擴展基於HTTP協議的Web伺服器。

在Java中,新建Servlet類繼承自HttpServlet,重寫doGet方法處理get請求,重寫doPost方法,處理post請求,通過

PrintWriter out = response.getWriter();通過out.write()輸出數據到前台的xhr.responseText,通過out.println()輸出頁面。

3.Servlet處理請求

處理請求通過HttpServletRequest類型,Get請求時查詢字元串直接編碼在請求鏈接中,格式為url+」?key1=value1key2=value2」,通過getParameter(「key1」)來獲取值。

4.前後端傳遞JSON數據

前端傳遞JSON給Servlet

//程序片段,請求頭不能少

xhr.setRequestHeader(“Content-type”, “application/json”);

var data={“name”:”Tom”,”age”:20};

xhr.send(JSON.stringify(data));1234

後端接受前端傳遞的JSON數據

//讀取請求傳遞過來的JSON格式數據,返回JSON字元串

private String readJSONData(HttpServletRequest request) {

StringBuffer json=new StringBuffer();

String lineString=null;

try {

BufferedReader reader=request.getReader();

while ((lineString=reader.readLine())!=null) {

json.append(lineString);

}

} catch (Exception e) {

System.out.println(e.toString());

}

return json.toString();

}

String json=readJSONData(request);

//將json字元串轉為java對象

Gson gson=new Gson();

Person person=gson.fromJson(json, Person.class);

說明

Gson為google處理JSON格式數據的jar包,可將JSON字元串轉換為對應的Java對象,也可將相應的Java對象序列化為JSON字元串。Person為定義的類,包含name和age欄位。readJSONData函數將前端請求中的JSON數據轉為java對象。

後端輸出JSON到前端

//後端程序片段,傳遞json數據給前端

Person person=new Person(“Tom”,20);

Gson gson=new Gson();

String json=gson.toJson(person);

out.write(json);

//前端程序片段,通過ajax獲取json數據

var xhr = new XMLHttpRequest();

var url=”/Website01/index.view”;

xhr.open(“get”, url, true);

xhr.onreadystatechange = function() {

if (xhr.readyState == 4 xhr.status == 200) {

//獲取後台傳遞過來的字元串並轉換為json

var responseJson=JSON.parse(xhr.responseText);

var name=responseJson.name;

var age=responseJson.age;

}

};

xhr.send(null);

5.表單數據的處理

form method=”post” action=”/Website01/index.view”

labelName:/labelinput type=”text” id=”name1″ name=”name”br

labelAge:/labelinput type=”number” id=”age1″ name=”age”br

input type=”submit” id=”submit” value=”提交”

/form12345

表單數據可以直接在form屬性中定義請求方法和請求路徑,在點擊submit按鈕後數據會直接提交並跳轉。如上的表單,在點擊按鈕提交後,後台使用request.getParameter(「key」)獲取數據,key值為input標籤的name值,而非id值.,即通過以下代碼獲取表單提交的數據。

String name=request.getParameter(“name”);

String age=request.getParameter(“age”);12

以上。

java使用ajax是否可以傳遞對象或數據集

可以,但是這樣的傳遞都是通過其他手段,也就是要經過序列化和反序列化

常用的方法有json和XML,比如使用ajax向Java發請求,我們先將對象轉成JSON或者XML或者其他格式的字元串,然後發給java,java接到請求後再解決這個字元串

使用最多的是JSON格式,因為現在有許多的庫可以來做這個序列化和反序列化

原創文章,作者:GKPZT,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/313655.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
GKPZT的頭像GKPZT
上一篇 2025-01-07 09:44
下一篇 2025-01-07 09:44

相關推薦

  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的「畫筆」在窗口中繪製…

    編程 2025-04-29
  • JSON的MD5

    在Web開發過程中,JSON(JavaScript Object Notation)是最常用的數據格式之一。MD5(Message-Digest Algorithm 5)是一種常用…

    編程 2025-04-29
  • 使用Java將JSON寫入HDFS

    本篇文章將從以下幾個方面詳細闡述Java將JSON寫入HDFS的方法: 一、HDFS簡介 首先,先來了解一下Hadoop分散式文件系統(HDFS)。HDFS是一個可擴展性高的分散式…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智慧,Python都扮演著重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28
  • 如何使用Newtonsoft datatable轉Json

    Newtonsoft DataTable 是一個基於.NET的JSON框架,也是一個用於序列化和反序列化JSON的強大工具。 在本文中,我們將學習如何使用Newtonsoft Da…

    編程 2025-04-28
  • 用Python實現簡單爬蟲程序

    在當今時代,互聯網上的信息量是爆炸式增長的,其中很多信息可以被利用。對於數據分析、數據挖掘或者其他一些需要大量數據的任務,我們可以使用爬蟲技術從各個網站獲取需要的信息。而Pytho…

    編程 2025-04-28
  • JPRC – 輕鬆創建可讀性強的 JSON API

    本文將介紹一個全新的 JSON API 框架 JPRC,通過該框架,您可以輕鬆創建可讀性強的 JSON API,提高您的項目開發效率和代碼可維護性。接下來將從以下幾個方面對 JPR…

    編程 2025-04-27

發表回復

登錄後才能評論