sv1*_*sv1 20 java json servlets
我将jQuery AJAX POST发布到servlet,数据采用JSON String的形式.它成功发布但在Servlet端我需要将这些key-val对读入Session对象并存储它们.我尝试使用JSONObject类,但我无法得到它.
下面是代码片段
$(function(){
$.ajax(
{
data: mydata, //mydata={"name":"abc","age":"21"}
method:POST,
url: ../MyServlet,
success: function(response){alert(response);
}
});
Run Code Online (Sandbox Code Playgroud)
在Servlet方面
public doPost(HTTPServletRequest req, HTTPServletResponse res)
{
HTTPSession session = new Session(false);
JSONObject jObj = new JSONObject();
JSONObject newObj = jObj.getJSONObject(request.getParameter("mydata"));
Enumeration eNames = newObj.keys(); //gets all the keys
while(eNames.hasNextElement())
{
// Here I need to retrieve the values of the JSON string
// and add it to the session
}
}
Run Code Online (Sandbox Code Playgroud)
小智 17
如果你使用jQuery .ajax(),你需要读取HttpRequest输入流
StringBuilder sb = new StringBuilder();
BufferedReader br = request.getReader();
String str;
while( (str = br.readLine()) != null ){
sb.append(str);
}
JSONObject jObj = new JSONObject(sb.toString());
Run Code Online (Sandbox Code Playgroud)
Rob*_*ond 15
你实际上并没有解析json.
JSONObject jObj = new JSONObject(request.getParameter("mydata")); // this parses the json
Iterator it = jObj.keys(); //gets all the keys
while(it.hasNext())
{
String key = it.next(); // get key
Object o = jObj.get(key); // get value
session.putValue(key, o); // store in session
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
90712 次 |
| 最近记录: |