首頁 > 後端開發 > php教程 > ajax傳遞list集合詳解

ajax傳遞list集合詳解

小云云
發布: 2023-03-21 19:48:01
原創
2755 人瀏覽過

本文主要和大家分享ajax傳遞list集合詳解,希望能幫助大家。

一:ajax傳遞List類型的資料

#js程式碼:

    ##
    //声明list  
    var _list = [];  
    //放入string对象  
    for (var i = 0; i < 3; i++) {  
        _list[i]="tom";  
    }  
    $.ajax({  
        url : &#39;/ajax/test&#39;,  
        data : "list="+_list,  
        type : "POST",  
        success : function(data) {  
            alert(data);  
        }  
    });
    登入後複製

#java程式碼:

    @RequestMapping(value="test",method=RequestMethod.POST)  
    @ResponseBody  
    public String ajaxList(@RequestParam("list")List<String> strList){  
        for (String str : strList) {  
            System.out.println(str);  
        }  
        return "OK";  
    }
    登入後複製

二:ajax傳遞List類型的資料

# 後台我需要用到json解析工具,我選得是jackson

導入jackson依賴:

    #
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.7.3</version>
    </dependency>
    登入後複製
##js程式碼:


//声明list  
var _list = [];  
//创建两个user对象  
var a= {};  
a.name="tom";  
a.age=23;  
a.city="上海";  
var b = {};  
b.name="jack";  
b.age=25;  
a.city="安徽";  
//将user放入_list  
_list.push(a);  
_list.push(b);  
$.ajax({  
    url : &#39;/ajax/test1&#39;,  
    data : "list="+JSON.stringify(_list),  
    type : "POST",  
    success : function(data) {  
        alert(data);  
    }  
});
登入後複製
  1. java程式碼:
@RequestMapping(value="test",method=RequestMethod.POST)  
@ResponseBody  
public String ajaxList(@RequestParam("list")String userList) throws Exception{  
    //jackson对象  
    ObjectMapper mapper = new ObjectMapper();  
    //使用jackson将json转为List<User>
    JavaType jt = mapper.getTypeFactory().constructParametricType(ArrayList.class, User.class);     
    List<User> list =  (List<User>)mapper.readValue(userList, jt);  
    return "OK";  
}
登入後複製

#三:當ajax傳遞任何複雜參數時,後台可以直接從流中讀取資料進行解析

js程式碼:

//声明list  
var _list = [];  
//创建两个user对象  
var a= {};  
a.name="tom";  
a.age=23;  
a.city="上海";  
var b = {};  
b.name="jack";  
b.age=25;  
a.city="安徽";  
//将user放入_list  
_list.push(a);  
_list.push(b);  
$.ajax({  
    url : &#39;/querz/test&#39;,  
    data : JSON.stringify(_list),//这里需要json化  
    type : "POST",  
    success : function(data) {  
        alert(data);  
    }  
});
登入後複製

    java程式碼:
  1. @RequestMapping(value="test",method=RequestMethod.POST)  
    @ResponseBody  
    public String ajaxList(HttpServletRequest request) throws Exception{  
        //从流中读取数据  
        BufferedReader br = request.getReader();  
        String str = "";  
        StringBuffer sb = new StringBuffer();  
        while((str = br.readLine()) != null){  
            sb.append(str);  
        }  
        ObjectMapper mapper = new ObjectMapper();  
        //使用jackson解析数据  
        JavaType jt = mapper.getTypeFactory().constructParametricType(ArrayList.class, User.class);     
        List<User> list =  (List<User>)mapper.readValue(sb.toString(), jt);   
        System.out.println(list);  
        return "OK";  
    }
    登入後複製
  2. #

以上是ajax傳遞list集合詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板