首先,JSON是什么?json对我来说就是一个数组,JSON传值就是对数组进行传递,那如何进行传递?请看:
从服务器端处理数据包装成JSON格式的数据,然后进行传递
CommColorMapper colorMapper=session1.getMapper(CommColorMapper.class);
ArrayList<CommColor> colorList=colorMapper.selectByAll();
CommSizeMapper sizeMapper=session1.getMapper(CommSizeMapper.class);
ArrayList<CommSize> sizeList=sizeMapper.selectByAll();
List<CommSort> sortList=sortMapper.selectByAll();
session.setAttribute("sortList", sortList);
ArrayList list=new ArrayList();
list.add(colorList);
list.add(sizeList);
//list.add(sortList);
JSONArray Jsonsort=new JSONArray();
Jsonsort.add(list);
response.getWriter().print(Jsonsort);
从前端进行接收并打印
$.ajax({
url:"AjaxServet.do",
type:"POST",
data:{
},
success:function(data){
alert(data);
var date=JSON.parse(data)
//var data=eval("("+data+")");
//alert(date.length);
//alert(date[0][1][1].sizename);
//
for(obj in date[0][0]){
alert(date[0][1][obj].sizename);
}
$.each(date,function(key,value){
console.log(key,value);
$.each(value,function(key1,value1){
console.log(key1,value1);
$.each(value1,function(key2,value2){
console.log(value2);
var show="";
show="<tr><td>value2</td></tr>"
//$("#img_show").append($(show));
})
})
})
以上两种方式均能打印出来数据。
注意事项:
JSONArray Jsonsort=new JSONArray();
Jsonsort.add(list);
//Jsonsort.add((JSONArray.fromObject("colorList").toString()));
//Jsonsort.add(JSONArray.fromObject("sizeList").toString());
//Jsonsort.add(JSONArray.fromObject("sortList").toString());
response.getWriter().print(Jsonsort);
当你采用这种方式进行传值时会报错,因为JSON不能识别这样的数据格式,必须将多个JSON对象放入一个集合中,然后进行传递。
以上是JSON传值与接收的一点想法与实践,如有不对之处或者更加方便的方式方法,欢迎指正。