使用AJAX 与SERVLET采用Mybatis框架利用JSON进行多值传递

本文探讨了使用AJAX与SERVLET结合Mybatis框架,通过JSON进行多值传递的方法。首先解释了JSON作为一种数据结构的性质,强调了在传递过程中需要将多个JSON对象放入集合。接着描述了从服务器端生成JSON数据并发送,以及前端如何接收并打印这些数据的步骤。最后指出,直接传递非集合形式的JSON数据会导致错误,并鼓励读者分享更优的实践方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,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传值与接收的一点想法与实践,如有不对之处或者更加方便的方式方法,欢迎指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值