spring MVC 如何接收前台传入的JSON对象数组

时间:2023-03-08 16:24:43
spring MVC 如何接收前台传入的JSON对象数组

spring MVC 如何接收前台传入的JSON对象数组

主要方法:

(主要用到的包是 net.sf.json  即:json-lib-2.3-jdk15.jar

完整相关jar包:

commons-beanutils-1.7.0.jar
commons-collections-3.2.jar

commons-lang-2.4.jar

commons-logging-1.1.jar

ezmorph-1.0.4.jar

json-lib-2.2.2-jdk15.jar)

转换JSONArray json数组为实体类的List:

 //T是随便定义的泛型,你根据自己需要自己定义类型
//doList是json类型字符串
public List<T> doList(String doList){ 
  JSONArray jsonArray=JSONArray.fromObject(doList);
  List<T> list=(List)JSONArray.toCollection(jsonArray,T.class);
  return list;
}

迭代json数组:

 Iterator<Object> it = jsonArray.iterator();
while (it.hasNext()) {
  JSONObject ob = (JSONObject) it.next();
}

------

------

具体代码:

js代码:

 function submitUserList() {
alert("ok");
var customerArray = new Array();
customerArray.push({id: "1", name: "李四", pwd: "123"});
customerArray.push({id: "2", name: "张三", pwd: "332"}); $.ajax({
url: "/user/submitUserList_3",
type: "POST",
dataType:"json",
data: {
//"doList":JSON.stringify(customerArray), //将Json对象序列化成Json字符串,JSON.stringify()原生态方法
"doList":$.toJSON(customerArray)
}, //将Json对象序列化成Json字符串,toJSON()需要引用jquery.json.min.js
success: function(data){
},
error: function(res){
alert(res.responseText);
}
});
}

java代码:

方法一:

 ///若接收的参数可以被封装到javabean对象中则可以如下写:
public List < User> doList(String doList) {
//先把字符串转成JSONArray
JSONArray jsonArray = JSONArray.fromObject(doList);
//再把jsonArray转成对象集合
List < User > list = (List) JSONArray.toCollection(jsonArray, User.class);
return list;
}

--------

方法二:

 ///若接收的参数不方便被封装到java对象中,则可以用下面方式获取
public List < User> doList(String doList) {
//先把字符串转成JSONArray
JSONArray jsonArray = JSONArray.fromObject(doList);
//迭代jsonArray
Iterator<Object> it = jsonArray.iterator();
List<User> list=new ArrayList<User>();
while (it.hasNext()) {
JSONObject ob = (JSONObject) it.next();//取到每个JSONObject对象
User user = null;
if(ob.getString("id")!=null){//调用JSONObject的getString("属性")方法获取对应值
user=new User();
user.setId(ob.getString("id"));
}
if(ob.getString("name")!=null){
user.setName(ob.getString("name"));
}
if(user!=null){
list.add(user);
}
}
return list;
}