当前位置:Gxlcms > PHP教程 > ajax传递list集合详解

ajax传递list集合详解

时间:2021-07-01 10:21:17 帮助过:6人阅读

本文主要和大家分享ajax传递list集合详解,希望能帮助到大家。

一:ajax传递List<String>类型的数据

js代码:

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


java代码:

  1. @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<Obj>类型的数据

后台需要用到json解析工具,我选得是jackson

导入jackson依赖:

  1. <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.7.3</version>
    </dependency>


js代码:

  1. //声明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 : '/ajax/test1',  
        data : "list="+JSON.stringify(_list),  
        type : "POST",  
        success : function(data) {  
            alert(data);  
        }  
    });

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 : '/querz/test',  
    data : JSON.stringify(_list),//这里需要json化  
    type : "POST",  
    success : function(data) {  
        alert(data);  
    }  
});
  1. java代码:

  2. @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";  
    }

以上就是ajax传递list集合详解的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行