json - 在 servlet 内从 JavaScript 检索作为 JSON 发送的数据

标签 json jsp servlets

我有一个关于从 Java servlet 内检索作为 JSON 发送的数据的查询。
以下是我在做什么...

这是 JavaScript 中向 servlet 发出请求的代码的一部分

type : "POST",
url: 'getInitialData',
datatype: 'json',
data : ({items :[{ name: "John", time: "2pm" },{name: "Sam", time: "1pm" }]}),
success: function(data) {
    try{
          ////Code to be handeled where response is recieved
       }catch(e){
        alert(e);
    }
}

在提出这个请求时,我尝试在 Servlet 中检索从 JavaScript 发送的参数,但是在这样做时,我首先对如何从请求中检索数据感到困惑

我在我的 servlet 中使用了以下内容:

注意:我的 Servlet 中的内容类型设置为:应用程序/json
 response.setContentType("application/json");

 request.getParameterMap();

上面向我展示了如下数据,但我无法弄清楚如何工作并获取实际数据
{items[1][name]=[Ljava.lang.String;@1930089, items[0][time]=[Ljava.lang.String;@860ba, items[1][time]=[Ljava.lang.String;@664ca, items[0][name]=[Ljava.lang.String;@1c334de}

而下面的代码给了我预期的 null 异常。
request.getParametervalues("items");

其中我试过 where request.getParameter(); request.getParameterNames();但徒劳...

我是不是走错方向了?请指导我!
请让我知道如何检索这些值。

感谢您阅读这篇长文...

桑 git

最佳答案

请求参数映射是 Map<String, String[]>其中映射键是参数名称,映射值是参数值——HTTP 允许同名有多个值。

鉴于 map 的打印输出,以下内容应该有效:

String item0Name = request.getParameter("items[0][name]");
String item0Time = request.getParameter("items[0][time]");
String item1Name = request.getParameter("items[1][name]");
String item1Time = request.getParameter("items[1][time]");

如果您想要更多动态,请使用以下内容:
for (int i = 0; i < Integer.MAX_VALUE; i++) {
    String itemName = request.getParameter("items[" + i + "][name]");
    String itemTime = request.getParameter("items[" + i + "][time]");

    if (itemName == null) {
        break;
    }

    // Collect name and time in some bean and add to list yourself.
}

注意设置回复 在收集 时,内容类型无关紧要。请求 参数。

关于json - 在 servlet 内从 JavaScript 检索作为 JSON 发送的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4902008/

相关文章:

java - 如何在digitalocean中设置java环境?

java - Tomcat JDBC 池 : Too many connections

php - Json导入mysql

javascript - 如何在 React 中访问 API 对象属性?

jsp - session 在 struts 2.0 中启动

java - 通过增加数量值将相同的商品添加到购物车,而不是将商品添加到新行

java - Servlet 3 注释会启用 secret 后门访问吗?

java.sql.SQLException : Parameter index out of range (1 > number of parameters, 即 0)。我收到这个错误

c# - 写入json重构代码

javascript - 将 JSON 转换为无序 HTML 列表(DFS?)