首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

java中如果解析rquest中json数据,该怎么处理

2012-03-17 
java中如果解析rquest中json数据JScript code//验证成绩$.ajax({type: GET,url: student/exchange/fore

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()       }       )    } 

热点排行