0

我正在使用 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 中?

4

2 回答 2

1

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

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

 Foo foo = gson.fromJson(req.getReader(), Foo.class);
于 2013-10-07T13:51:08.630 回答
0

我认为您应该像这样首先获取 json 参数

发送参数

answer=json 

发送请求时

然后使用这个获取json

String jsonStr=request.getParameter("answer");

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

希望我有所帮助。

于 2013-10-07T10:56:59.143 回答