json从前台传到后台再传到前台的编码处理
环境:将前台焊机数组带到后台再跳转到新页面并显示
前台url传参到后台
ary即传过去的数组:
window.location.href = encodeURI("XXX/XXXX?ary="+JSON.stringify(ary));
后台处理并传到新页面前台
@RequestMapping("/XXXX")
public String XXXX(HttpServletRequest request){
try {
//处理编码
request.setAttribute("ary", URLEncoder.encode(request.getParameter("ary"),"utf-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return "xxx/newXXX";
}
前台转码并显示
根据个人需求来看吧,我第一次用decodeURI解码还是带有乱码,再用decodeURIComponent解码就好了如果单独用decodeURIComponent的话就变成[]了,具体原因还不太清楚,eval是处理json的如果不加这个ary就只是字符串无法变成数组
//jsp页面
<input type="hidden" id="ary" value="${ary }"/>
//js
var ary = eval("("+decodeURIComponent(decodeURI($("#ary").val()))+")");
顺便记录一下用iframe时跳出框架到新页面的写法
top.location.href = “XXX/XXXX”;