我打算将JSON格式的整个表单数据发布到Struts2 Action。以下是我的代码段。纠正我要去哪里的错误或帮助我,以便我可以正确获取Action文件中的所有值。我在操作文件中的所有SOP显示为null
null
var MyForm = $("#companyform").serializeArray(); var data = JSON.stringify(MyForm); $.ajax({ type: 'POST', url:'createcompany.action?jsonRequestdata='+data, dataType: 'json', success: function(data){ console.log(stringify(data)); }});
我的表格数据变成了 [{"name":"tan","value":"rrr"},{"name":"pan","value":"adf"},{"name":"tod","value":"1"}]
[{"name":"tan","value":"rrr"},{"name":"pan","value":"adf"},{"name":"tod","value":"1"}]
Struts2操作文件:
String jsonRequestdata; public String execute() throws Exception { JSONArray jsonArr = (JSONArray) new JSONParser().parse(jsonRequestdata); JSONObject json = (JSONObject) jsonArr.get(0); System.out.println("TAN=" + json.get("tan")); System.out.println("PAN=" + json.get("pan")); System.out.println("TOD=" + json.get("tod")); return "success"; }
现在的输出
TAN=null PAN=null TOD=null
由于我使用名称,值,所以必须使用名称来获取它。下面是工作代码
JSONArray jsonArr = (JSONArray) new JSONParser().parse(jsonRequestdata); for(int i=0;i<jsonArr.size();i++){ JSONObject json=(JSONObject) jsonArr.get(i); System.out.println("name=" + json.get("name")); System.out.println("value=" + json.get("value")); }