java中如果解析rquest中json数据
- JScript code
//验证成绩$.ajax({type: "GET", url: "student/exchange/foreignProjApply....",data: getScoreJSON(),dataType: "json",success: function(msg){alert( "Data Saved: " + msg ); // document.registeForm.submit(); }});
- JScript code
function getScoreJSON(){var json ={ "cet4":$("#cet4").val(), "cet6":$("#cet6").val(), "Ielts": { "IeltsTotalScore": $("#IeltsTotalScore").val(), "IeltsListening": $("#IeltsListening").val(), "IeltsSpeaking":$("#IeltsSpeaking").val(), "IeltsReading": $("#IeltsWriting").val(), "IeltsWriting":$("#IeltsWriting").val() } return eval(json); }
前面是js的json格式验证
在Struts 验证action中有如下代码:
String cet4= request.getParameter("cet4");
String cet6= request.getParameter("cet6");
String IeltsTotalScore= request.getParameter("Ielts.IeltsTotalScore");
这句红色错误!
我想问一下IeltsTotalScore节点的值如何获取?
[解决办法]
然可以自己手去拆的,不有第三方的json包,new JSONObject(String arg);
然后就可以操作了!
[解决办法]
把JSON对象数据提交到后台时只是一个字符串参数,在后台需要获取该参数后用JSON包解析成JSON对象,然后你就可以访问里面的数据。JSON包可从www.json.org下载java包。使用方式如下,主要得看你JSON对象传到后台的参数名称是什么。
String jsonString= request.getParameter("json");
System.out.println(jsonString);
JSONObject jsonObj=new JSONObject(jsonString);
System.out.println(jsonObj.getJSONObject("Ielts").getString("IeltsTotalScore"));
[解决办法]
我不知道你用的是什么框架,它提交到后台时是怎么处理的。
我用Extjs,如果是一个Object,那还得将它转换为字符串:
- JScript code
var json ={ "cet4":$("#cet4").val(), "cet6":$("#cet6").val(), "Ielts": Ext.encode( { "IeltsTotalScore": $("#IeltsTotalScore").val(), "IeltsListening": $("#IeltsListening").val(), "IeltsSpeaking":$("#IeltsSpeaking").val(), "IeltsReading": $("#IeltsWriting").val(), "IeltsWriting":$("#IeltsWriting").val() } ) }