1. jquery ajax 怎麼用json
首先要明白ajax的基本格式,參考下面的內容,可以發現,data參數,是傳到伺服器的參數,裡面的值可以定義成json格式,當伺服器接收到參數後,默認自動就是json格式。
總結一下:傳的什麼格式到伺服器,伺服器會默認接收什麼格式的數據,當然,可以在傳值的時候加參數,如下面例子中的「dataType」參數
以下是ajax的一些參數:
$.ajax({
type:'post',
url:'/testajax.php',
dataType:'json',
data:{uid:uid,rands:Math.random()},
success:function(){
alert('ajaxreturnsuccess');
}});
url,類型:String,默認值: 當前頁地址。發送請求的地址
data,類型:String,發送到伺服器的數據。將自動轉換為請求字元串格式。GET 請求中將附加在 URL 後。查看 processData 選項說明以禁止此自動轉換。必須為 Key/Value 格式。如果為數組,jQuery 將自動為不同值對應同一個名稱。如 {foo:["bar1", "bar2"]} 轉換為 '&foo=bar1&foo=bar2'
dataType,類型:String,預期伺服器返回的數據類型。如果不指定,jQuery 將自動根據 HTTP 包 MIME 信息來智能判斷,比如 XML MIME 類型就被識別為 XML。在 1.4 中,JSON 就會生成一個 javaScript 對象,而 script 則會執行這個腳本。隨後伺服器端返回的數據會根據這個值解析後,傳遞給回調函數。可用值:
"xml": 返回 XML 文檔,可用 jQuery 處理。
"html": 返回純文本 HTML 信息;包含的 script 標簽會在插入 dom 時執行。
"script": 返回純文本 JavaScript 代碼。不會自動緩存結果。除非設置了 "cache" 參數。注意:在遠程請求時(不在同一個域下),所有 POST 請求都將轉為 GET 請求。(因為將使用 DOM 的 script標簽來載入)
"json": 返回 JSON 數據 。
"jsonp": JSONP 格式。使用 JSONP 形式調用函數時,如 "myurl?callback=?" jQuery 將自動替換 ? 為正確的函數名,以執行回調函數。
"text": 返回純文本字元串
success,當請求之後調用。傳入返回後的數據,以及包含成功代碼的字元串
2. 如何使用ajax將json傳入後台數據
首先,我們來寫一下後台如何生成要傳輸的數據:
這樣,就可以把數據無刷專新的寫入到資料庫。
3. java如何接收ajax傳遞的json類型的數據
主要是賦值給Map就行。
json數據格式為:
{name:'張三',age:20}這樣的不是數組時,
在java中new一個Map對象獲取,如
Map<String,String> map = (Map<String,String>)request.getParament("json");
然後獲取name為:map.get("name");
如果json數據為數組:
[{name:'張三',age:17},{name:'李四',age:20}]
在java中new一個
List<Map<String,String> maplist = (List<Map<String,String>)request.getParament("json");
4. ajax 提交json 數據,請求報415 的問題
1、檢查你提交抄的內容,是不是json格式的字元,不管前台是傳遞json 字元串 還是 json對象過去,springMVC 的requestBody都可以給你進行對象的屬性值轉換,我最後發現這個原因是因為傳遞的那個dto 對象中,有兩個一樣的名稱屬性,只是大小寫不一樣,一個叫ids 一個叫 IDS它在進行轉換的時候不區分大小寫,所以造成了415 媒體類型不支持的錯誤。
2、
正確的json格式{key:value, key:value}key和value應該都帶雙引號。上面的前台代碼data中的數據value不帶雙引號,所以導致報錯(因為前面接觸的項目這樣寫是沒問題)
所以初步分析可能應為框架的問題,有的框架可以將
data : {"uuid" : uuId,"idCard" : idCard}這種封裝成正確的json格式。