JSON获取参数为null

时间:2013-10-07 10:49:53

标签: json jquery java-ee gson

我使用Ajax和JSON将一些数组传递给我的servlet。我使用Struts1.3作为我的框架。当我在ActionServlet中获取参数时,我收到null作为参数。

    $.ajax({
    url: "startTest.do?cmdField=ajax",
    type: "POST",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    data:JSON.stringify(answerJson),
    contentType:"application/json"
    //complete:callback
}); 

我的JSON对象answerJson值:

 {"answer":[{"qId":"13","selAns":"A"},{"qId":"2","selAns":"A"},{"qId":"12","selAns":"A"},{"qId":"6","selAns":"A"}]}

在我的servlet中,如果我使用下面的语句,则为null。

System.out.println(request.getParameter("answer"));

我尝试使用GSON作为

JsonAns ans = gson.fromJson(request.getParameter("answer"), JsonAns.class);

反过来又给了我错误。

如何使用GSON将参数值输入List?

2 个答案:

答案 0 :(得分:1)

我找到了解决方案。 req.getParameter(“anything”)假设内容类型为“application / x-www-form-urlencoded”或普通的HTTP GET(用于URL参数)。

当内容类型为“application / json”时,我们需要使用:

 Foo foo = gson.fromJson(req.getReader(), Foo.class);

答案 1 :(得分:0)

我认为你应该首先得到json参数

一样发送参数
answer=json 
发送请求时

然后使用此

获取json
String jsonStr=request.getParameter("answer");

然后将json字符串转换为json obj,然后使用gson解析

希望我帮助过。