我使用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?
答案 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
发送请求时
然后使用此
获取jsonString jsonStr=request.getParameter("answer");
然后将json字符串转换为json obj,然后使用gson解析
希望我帮助过。