ajax同時傳map和list到java後端,map和list拼接成json,後端用map接收

今天給大家分享一下ajax同時傳map和list到java後端,後端接收的方法。

本質上還是把map和list拼接成一個json字符串。

1.首先在js裏創建一個map 一個list,然後給他們賦值

var list= new Array();
var map = new Map();

2.接下來把list和map轉換成json格式,list可以直接用JSON.stringify去轉

var listJson = JSON.stringify(list);
var mapJson = _mapToJson(map);
function _strMapToObj(strMap){
    let obj= Object.create(null);
    for (let[k,v] of strMap) {
        obj[k] = v;
    }
    return obj;
}
function _mapToJson(map) {
    return JSON.stringify(this._strMapToObj(map));
}

3.拼接起來,放到ajax的data裏

var map1 = '{"key1":' + mapJson + ',"value1":'+listJson+' }';
$.ajax({
	type: 'PUT',
	url: 你的url,
	data: map1,
	dataType: 'json',
	contentType: 'application/json',

4.ajax裏的data用@RequestBody註解來接收,因爲只有一對key和value,所以就直接通過key獲取了value,獲取出來是String類型的,直接強轉就可以了,現在的map和list就是你需要的結果,這樣就結束了。

@PutMapping("/{id}")
public ResponseResult changeStatus(@RequestBody Map map1, @PathVariable("id") String id) {
    Map<String,String> map = (Map<String, String>) map1.get("key1");
    List<String> list= (List<String>) map1.get("value1");
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章