首页 > 代码库 > @RequestBody接收ajax的json字符串
@RequestBody接收ajax的json字符串
在使用ajax进行请求,并传递参数时,偶尔需要把数组作为传递参数,这是就要使用@RequestBody来解决这个问题
在页面端的处理:
(1)利用JSON.stringify(arr)需要把json对象数组转变成一个json对象字符串
(2)在ajax的参数中设置"contentType": "application/json"
$(function(){
$("#exe").on("click",function(){
var arr = new Array();
arr.push({"name":"lcs","age":18});
arr.push({"name":"yds","age":19});
arr.push({"name":"hrl","age":20});
arr.push({"name":"lyf","age":21});
var arrs = JSON.stringify(arr);
$.ajax({
"url": "ajax_array.do",
"type": "post",
"data": arrs,
"contentType": "application/json",
"dataType": "json",
"success": function(result){
alert("请求成功!");
},
"error": function(){
alert("请求失败!");
}
});
});
});
在后端的处理:
(1)利用RequestBody来接收JSON对象字符串,persons中是json对象数组进JSON.stringify(arr)转换的JSON对象字符串(数组的json对象字符串)
(2)导入json-lib,利用其JSONArray和JSONObject的方法来解析获取JSON对象字符串中的数据
(3)JSONArray.fromObject(persons)是把JSON对象字符串转换成JSON对象。
@ResponseBody
@RequestMapping("/ajax_array.do")
//@RequestBody接收ajax请求的json字符串参数
public String getPersons(@RequestBody Person[] persons){
//将persons JSON字符串转换成JSON对象
//JSONArray对象,有点像list对象
JSONArray arrs = JSONArray.fromObject(persons);
List<Person> personList = new ArrayList<Person>();
//遍历JSONArray
for(int i=0; i<arrs.size(); i++){
Person person = new Person();
//getJSONObject(i)是一个json对象
String name = arrs.getJSONObject(i).getString("name");
int age = arrs.getJSONObject(i).getInt("age");
person.setName(name);
person.setAge(age);
personList.add(person);
}
System.out.println(personList);
return "success";
}
@RequestBody接收ajax的json字符串
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。