原文鏈接:https://blog.csdn.net/qq_37936542/article/details/79277495
一:ajax傳遞List<String>類型的數據
js代碼:
- //聲明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代碼:
- @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";
- }
后台需要用到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 : '/ajax/test1',
- data : "list="+JSON.stringify(_list),
- type : "POST",
- success : function(data) {
- alert(data);
- }
- });
- @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);
- }
- });
java代碼:
- @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";
- }
文末福利:
福利一:前端,Java,產品經理,微信小程序,Python等10G資源合集大放送:https://www.jianshu.com/p/e8197d4d9880
福利二:微信小程序入門與實戰全套詳細視頻教程
【領取方法】
關注 【編程微刊】微信公眾號:
回復【小程序demo】一鍵領取130個微信小程序源碼demo資源。
回復【領取資源】一鍵領取前端,Java,產品經理,微信小程序,Python等資源合集10G資源大放送。

90后前端妹子,愛編程,愛運營,愛折騰。
堅持總結工作中遇到的技術問題,堅持記錄工作中所所思所見,歡迎大家一起探討交流。