Ajax提交json数据

一 在js中的提交方法

function addExtAttr(){
           var obj=JSON.stringify([{'extAttrCode':'7','extAttrName':'基本属性','extSort':'7','extPageType':'10',
           'extCheck':'10','extValueType':'0','extValueDefault':'','extStatusCd':'1000','extPage':'T1001',
              'list': [{'extAttrValueCode': '0','extAttrValueName': 'name0'},
                       {'extAttrValueCode': '1','extAttrValueName': 'name1'}]},
                                  {'extAttrCode':'8','extAttrName':'基本属性','extSort':'8','extPageType':'10',
           'extCheck':'10','extValueType':'0','extValueDefault':'','extStatusCd':'1000','extPage':'T1001',
              'list': [{'extAttrValueCode': '0','extAttrValueName': 'name0'},
                       {'extAttrValueCode': '1','extAttrValueName': 'name1'}]}
                       ]);
			$.ajax({
	          url : '${ctx}/extAttrManage!insertExtAttr.action' ,
	          type : 'post',
	          dataType : 'json',
			  data : {'param':obj},
	          success : function(data) {
	          	alert(data.msg);
	         }
	     });

由于项目的需要,我的json数据传的比较复杂,大致可以简化成[{"AA":"BB"},{"CC":"DD"}]这样的一个json数组。传递的json对象一定要用
JSON.stringify()方法将其转换为字符串,不然后台接收到的值是null.
如果你的 dataType :是填的json,那么你回传的就是一个json对象,不需要再用JASON.parse()或者eval()将其转化为数组,个人建议不要用eval()函数。


二   action的中处理方法

/**
	 * 插入拓展属性
	 * @return 
	 */
	public String insertExtAttr(){
		log.info("extAttrManage!insertExtAttr 插入拓展属性");
		try{
			List<ExtAttr> listExtAttr=new ArrayList<ExtAttr>();
			String param = StringUtils.trimToNull(getRequest().getParameter("param"));
			if(param != null){
				param = java.net.URLDecoder.decode(param, "UTF-8");
			}
			//将前台传过来的json数组存到ExtAttr对象中
			listExtAttr=JSON.parseArray(param, ExtAttr.class);
			extAttrService.insertExtAttr(listExtAttr);
		}catch(Exception e){
			log.error("extAttrManage!insertExtAttr error : 系统异常,插入拓展属性!!!\n", e);
			log.bizLog("extAttrManage!insertExtAttr", "插入拓展属性失败", "插入", "插入异常", "失败", getAuth(), getOperUrl());
			ActionUtils.write(this.getResponse(), "{\"msg\":\"插入拓展属性失败\"}");
			return Constants.GLOBAL_ERROR_PAGE; 
		}
		ActionUtils.write(this.getResponse(), "{\"msg\":\"插入拓展属性成功\"}");
		return null;
	}


这里说一下给前台传递json的写法,格式就是json的一般格式,但是必须是双引号。不然用JSON.parse()就解析不了。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值