关于JSP页面收集数据封装成JSON格式传入到后台相关

1.使用选择器等方式收集到标签的值

例如:

function  get(){
	var jsonStr =[];
	$(".input").each(function(index,item){
		index++;//循环的索引
		var val = $(this).val().trim();//拿到当前循环体的值去空格
		if(val!=""){
			var obj={}//创建一个JSON格式的空对象
			var title =  $(this).parent().prev().html();//找个当前元素的父类级的前一个元素值
			obj['title'] = title;//JSON中的第一个成员,类似于{title : "title"}
			obj['value'] = val;//JSON中的第二个成员,类似于{title:"title" , value : "value"}
			//依次往下添加其他成员,这里也可以使用(obj.title=title)这种方式来添加
			obj['flags'] = "0";
			obj['sort'] = index;
			obj['color'] = val;
			obj['lastColor'] = val;
			//要实现从JS对象转换为JSON字符串,使用 JSON.stringify() 方法
			JSON.stringify(obj)之后为:
			{"title" : "title","value " : "value "}
			//循环放入jsonStr数组中为:
			jsonStr.push(JSON.stringify(obj));
			["{"title" : "title","value" : "value"}","{"title" : "title" , "value" : "value"}"]
		}
	});
	//把得到的这个数组赋值给文本保存。
	$("#jsonStr").val(jsonStr);
}

2.在JSP页面会有一个对应的隐藏域如下:

<form:hidden path="jsonStr"/> 

这个id对应着当前这个实体类里面的一个属性,这样json串就会通过实体传入到后台的逻辑中。

3.后台处理

// 去掉html制表字符,转义字符,并且加上"[“左括号和右括号”]":

String str = CONSTANT.BRACKET_LEFT + StringEscapeUtils.unescapeHtml3(scProductionPackageTitle.getJsonStr())
   			+ CONSTANT.BRACKET_RIGHT; 

转成json数组循环获取:

try {
	if (!StringUtils.isRealEmpty(str)) {
		JSONArray jsonArray = new JSONArray(str);
		// 前台传进来的JSON对象数量
		int size = jsonArray.length();
		if (size == 0) { 
			// "没有JSON数据,请联系管理员"
			throw new ServiceException(MSG_PARSING_JSON);
		}
		if (size != 0) {
			JSONObject jsonObject = null;
			for (int i = 0; i < jsonArray.length(); i++) {
				jsonObject = jsonArray.getJSONObject(i);
				// 逐个获取并解析数据([{"title":"主板BOM","value":"1"},{"title":"小板BOM","value":"6"}])
				String packageDetailsTitle = jsonObject.get(TITLE).toString().trim();
				String packageDetailsValue = jsonObject.get(VALUE).toString().trim();
			 	ScProductionPackageDetails scProductionPackageDetails = new ScProductionPackageDetails();
				// 保存数据		 
				scProductionPackageDetails.setTechnicalInformation(packageDetailsTitle);
				scProductionPackageDetails.setTechnicalDataDescription(packageDetailsValue );
				scProductionPackageDetails.setRemark(packageDetailsFlags);
				scProductionPackageDetails.setSort(packageDetailsSort);
				scProductionPackageDetails.setColor(packageDetailsColor);
				scProductionPackageDetails.setLastColor(strLastColor);
				scProductionPackageDetailsService.save(scProductionPackageDetails);
			}
		}
	}
} catch (Exception e) {
	logger.error("保存资料包明细出错:" + e.getMessage());
	throw new ServiceException("保存资料包明细出错:" + e.getMessage());
}

你可能感兴趣的:(json,javascript,jsp,java)