前端json字符串转化为js对象的多种方法

1、后台代码:

@RequestMapping(value="/public/batchRecharge",method=RequestMethod.POST)
	public String batchRecharge(HttpServletRequest request, HttpServletResponse response) throws Exception{
		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;  
	    MultipartFile multipartFile = multipartRequest.getFile("batrechexcel");  
	    String sourceName = multipartFile.getOriginalFilename(); // 原始文件名  
	    //String fileType = sourceName.substring(sourceName.lastIndexOf("."));  
	    String base = request.getSession().getServletContext().getRealPath("/") + "batchrecharge" + File.separator + "uploadedExcel";  
	    File file = new File(base);  
	    if(!file.exists()){  
	       file.mkdirs();  
	    }   
	    String path=base + File.separator + sourceName;  
	    multipartFile.transferTo(new File(path));
	    Set<PhoneSize> phoneSizes = readBatchRechargeExcel(path);
	    String account = getLoginUser().getAccount();
	    String resultJson = this.batReChMainService.doBatchRecharge(phoneSizes,account);
	    attr("resultJson",resultJson);
	    return "flow/batchrecharge/batchrecharge";
	}

2,、前台代码:用一个隐藏的input把后台传过来的数据藏起来,然后再去读它

<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
	<%@include file="/pages/include/base-head.jsp"%>
	<%-- <script type="text/javascript" src="${skin}/js/flow/batchrecharge.js"></script> --%>
  </head>
<body>
<form id="dataform" method="post" enctype="multipart/form-data" action="${contextPath}/flow/public/batchRecharge" onsubmit="return verification()">
<table style="align:center">
  <tbody>
     <tr>
        <td>
                        批量充值Excel模板:
        
            <img src="${skin}/image/flow/exceltemplate.png"/>
        </td>
     </tr>
     <tr><td> </td></tr>
     <tr>
        <td>
         <input type="file" name="batrechexcel"/>
        <input type="submit" value="确认批量充值"/>
        </td>
     </tr>
     <tr><td> </td></tr>
     <tr id="shangjieguo" style="display:none">
        <td>充值结果:<span id="totalresult" style="color:red"></span>
        </td>
     </tr>
     <tr id="xiajieguo" style="display:none">
        <td>错误描述:<br/>
            <span id="errordes" style="color:red"></span>
            <span id="incompleteDataString" style="color:red"></span>
        </td>
     </tr>
     <tr>
       <td>
          <input type="hidden" id="resultJson" value='${resultJson}'/>
       </td>
     </tr>
  </tbody>
</table>
</form>
<script>
function verification(){
	 var batrechexcel = $("input[name='batrechexcel']").val();
	 if(batrechexcel == ""){
		 $("#shangjieguo").show();
		 $("#totalresult").text("请选择要导入的Excel文件");
		 $("#xiajieguo").css("display","none");
		 return false;
	 }else{
		 return true;
	 }
}
$(function(){
			var straf = $("#resultJson").val();
			var str = JSON.parse(straf);
			if(str.result == "allsuccess"){
				$("#shangjieguo").show();
				$("#totalresult").text("全部受理成功:"+"总共充值数:"+str.totalNumber+" ,充值成功数:"+str.successNumber+" ,充值失败数:"+str.failNumber+" ,格式不对数:"+str.incompleteDataNumber);
			}else if(str.result == "allfail"){
				$("#shangjieguo").show();
				$("#xiajieguo").show();
				$("#totalresult").text("全部受理失败:"+"总共充值数:"+str.totalNumber+" ,充值成功数:"+str.successNumber+" ,充值失败数:"+str.failNumber+" ,格式不对数:"+str.incompleteDataNumber);
				$("#errordes").html(str.failreason);
				$("#incompleteDataString").html(str.incompleteDataString);
			}else if(str.result == "null"){
				$("#shangjieguo").show();
				$("#totalresult").text("数据为空或数据大于1万");
			}else if(str.result == "partfail"){
				$("#shangjieguo").show();
				$("#xiajieguo").show();
				$("#totalresult").text("部分受理失败:"+"总共充值数:"+str.totalNumber+" ,充值成功数:"+str.successNumber+" ,充值失败数:"+str.failNumber+" ,格式不对数:"+str.incompleteDataNumber);
				$("#errordes").html(str.failreason);
				$("#incompleteDataString").html(str.incompleteDataString);
			}
});

</script>  
</body>
</html>

 

3、var str = ${resultJson};(可以,但是不可行)

如果直接把${resultJson}放在 var str中,则str直接是一个js对象,无需转化,但是刚进页面时,var str = ${resultJson}会报错,影响下面js语句的执行,所以是不可行的办法

4、
var straf = '${resultJson}';
var str = JSON.parse(straf);(可以)

5、

var straf = new String('${resultJson}');(可以)
var str = JSON.parse(straf);

6、

var straf = "${resultJson}";
var str = JSON.parse(straf);(不可以)

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值