如何在servlet中获取jQuery JSON请求参数?

时间:2011-08-23 16:10:42

标签: java jquery json servlets

我有以下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

4 个答案:

答案 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);