日期:2014-05-17  浏览次数:20792 次

Servlet如何获取ajax中以json格式传入的数据?
JavaScript:

$('#but_json_json').click(function(){
var j ={"name":"王","password":123456};
 
$.ajax(
{
url:"servlet/JsonObject", //访问路径
type:"POST", //访问方式
data:j, //传入服务端的数据
dataType:"json",
contentType:"application/json;charset=utf-8",
success : function(data){
alert(data);
  alert(data.name);
 
  
    alert(data.password);
}

}
);
});

 
Servlet:

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletExceptionIOException {

 String user = request.getParameter("j");
String name = request.getParameter("name");
String password = request.getParameter("password");
 System.out.println(user);
//JSON对象
JSONObject jsonObject = new JSONObject();
jsonObject.accumulate("password", password).accumulate("name", "www");
response.setContentType("application/json");
response.getWriter().write(jsonObject.toString());
}


现在的问题是,我可以从客户端将Servlet中传出的数据解析,如上面的name=www,但客户端传入的对象
(var j ={"name":"王","password":123456})在Servlet中取不到,好像是说要先去对象,我觉得应该是,
毕竟json提供了很多方法将取到到的json数据转换为别的格式,但还是搞不懂。本人新手,第一次接触,希望知道的朋友指定一下,感激不尽!
servlet json ajax 对象 data

------解决方案--------------------
你可以用JSONObject.fromObject()方法将字符串转换为json的对象,再用getInt(key),getString(Key)取值就行了。
------解决方案--------------------
jquery  data:{"name":"王"};
后台   String account = request.getParameter("name");  
试试看呢
------解决方案--------------------

String name = request.getParameter("name");
String password = request.getParameter("password");

你在ajax请求中没有提交name 和password 两个属性 
以上两行代码取到的值都是空