【问题标题】:JSON getting parameter as nullJSON获取参数为null
【发布时间】:2013-10-07 10:49:53
【问题描述】:

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

【问题讨论】:

    标签: json jquery jakarta-ee gson


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      我觉得你应该先这样获取json参数

      像这样发送参数

      answer=json 
      

      发送请求时

      然后使用这个获取json

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

      然后将json字符串转成json obj再用gson解析

      希望我能帮上忙。

      【讨论】:

      • 我需要将其作为 post 参数发送。这就是问题所在。
      • 有两种方法可以简单地将内容类型更改为 html/text 并将数据发送为 answer=json 或阅读 this 以更好地了解如何通过 ajax 发布请求发送和检索 json
      • 是的,但我的要求是将其作为 post 参数发送!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多