问题描述
前台构造10个数组,数组里面包含的是json对象,然后通过表单向后台提交这个数组。前段代码:for(i=0;i<10;i++){ jsonObj={"field":"field:+i,"name":"name"+i}; inFoArray.push(jsonObj);}function postToAction(){ form1.action="Test!generateTemp.action?inFoArray="+inFoArray; form1.submit();}后台我这样写public String generateTemp() {for(int i=0;i<inFoArray.length;i++){jsonJavaObj=JSONObject.fromObject(inFoArray[i]);System.out.println(jsonJavaObj.get("field")); System.out.println(jsonJavaObj.get("name"));}return null;}提交时url为:http://localhost:8080/pro_1/Test!generateTemp.action?inFoArray=[object%20Object],[object%20Object],[object%20Object],[object%20Object],[object%20Object],[object%20Object]现在问题是没有得到预期的效果,而且报错,难道MVC action 无法处理带有json的数组?谢谢
解决方案
var inFoArrayJsonStr = JSON.stringify(inFoArray);form1.action="Test!generateTemp.action?inFoArray="+inFoArrayJsonStr;
解决方案二:
inFoArray是个js对象,不是JSON字符串,需要先转换成JSON字符串,后台才能接收。你可以alert(inFoArray)看一下js转换json字符串的例子http://www.open-open.com/lib/view/open1341644394292.html这有一个~
解决方案三:
你这不是传递的json数据 用 post试试