关于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());
}
在Web开发中,通常后端接口返回的数据格式JSON,这样前端JavaScript可以直接解析和使用这些数据。然而,如果你遇到的情况是后端返回的是JSP页面内容,并且你希望将这些内容转换为JSON格式数据,那么你需要在客户端进行一些处理。 可以通过以下步骤将JSP页面内容转换为JSON格式数据: 1. 使用XMLHttpRequest或者Fetch API向服务器请求JSP页面。 2. 服务器响应后,你将得到一个包含JSP页面内容的字符串。 3. 需要使用JavaScript解析这个字符串。通常,如果JSP页面输出的是一种标准格式(比如JSON格式的字符串),你可以直接使用它。但如果是HTML或其他格式,你可能需要借助正则表达式或者第三方库(如cheerio等)来解析和提取需要的数据。 4. 解析后,将提取出的数据构造JavaScript对象。 5. 最后,使用`JSON.stringify()`方法将JavaScript对象转换为JSON字符串。 下面是一个简单的示例代码,展示如何使用Fetch API请求数据,并尝试将返回的HTML内容转换为JSON对象: ```javascript fetch('your-jsp-url') .then(response => response.text()) // 获取响应体中的文本 .then(htmlString => { // 这里你需要根据JSP页面的具体内容来编写解析逻辑 // 假设JSP页面输出的是一个标准的JSON字符串 const jsonString = htmlString; // 这里直接赋值,实际情况下需要解析提取 const json = JSON.parse(jsonString); // 将JSON字符串转换为JavaScript对象 console.log(json); }) .catch(error => console.error('Error:', error)); ``` 需要注意的是,上述代码假设JSP页面已经输出了标准的JSON字符串。如果JSP页面输出的是HTML格式的字符串,则需要先提取其中的数据,再进行转换。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值