我有以下javascript代码:
var data = {message:"Hi"}
var sendJson = function (){
alert(data);
$.ajax({
url:"./jsonTest",
data: data,
contentType:"application/json",
type:"post",
dataType:"json"
}).success(function(reply) {
alert("successful");
});
}
如何在servlet上获取JSON对象?
我之前尝试使用
request.getParameter("data")
并尝试将其转换为JsonObject,但我不断获得null
。
答案 0 :(得分:1)
@Kebs,
如果还没有弄清楚..你可以找到答案here :)
答案 1 :(得分:0)
尝试下面的一行。 data只是javascript变量,但jquery会将消息成员放在URL params而不是data。
request.getParameter("message");
答案 2 :(得分:0)
如果data
是对象,它将被转换为请求参数字符串,如
pameterName1 =值1&安培; pameterName2 =值2
你可以使用
获得它 request.getParameter("pameterName1");
答案 3 :(得分:0)
您可能希望查看构建于基本Servlet API之上的JAX-RS容器(Jersey),但是为JSON获取数据绑定会更方便。
但是如果你必须使用原始的Servlet API,那么POST内容将通过请求对象提供;获取InputStream,并使用像Jackson这样的JSON库绑定到object:
MyBean bean = new ObjectMapper()。readValue(httpRequest.getInputStream(),MyBean.class);
并且类似地,如果您需要返回JSON对象,请执行相反的操作:
objectMapper.writeValue(httpResponse.getOutputStream(),resultObject);