Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Servlet request.getParameter中从jQuery读取复杂的JSON对象_Jquery_Json_Ajax_Servlets_Http Request Parameters - Fatal编程技术网

如何在Servlet request.getParameter中从jQuery读取复杂的JSON对象

如何在Servlet request.getParameter中从jQuery读取复杂的JSON对象,jquery,json,ajax,servlets,http-request-parameters,Jquery,Json,Ajax,Servlets,Http Request Parameters,我正在使用jQuery创建并发送一个JSON对象,但我无法理解如何使用org.JSON.simple库在Ajax servlet中正确解析它 我的jQuery代码如下: var JSONRooms = {"rooms":[]}; $('div#rooms span.group-item').each(function(index) { var $substr = $(this).text().split('('); var $name =

我正在使用jQuery创建并发送一个JSON对象,但我无法理解如何使用org.JSON.simple库在Ajax servlet中正确解析它

我的jQuery代码如下:

var JSONRooms = {"rooms":[]};
       $('div#rooms span.group-item').each(function(index) {
           var $substr = $(this).text().split('(');
           var $name = $substr[0];
           var $capacity = $substr[1].split(')')[0];           
           JSONRooms.rooms.push({"name":$name,"capacity":$capacity});
       });        
       $.ajax({
           type: "POST",
           url: "ParseSecondWizardAsync",          
           data: JSONRooms,        
           success: function() {
               alert("entered success function");
               window.location = "ctt-wizard-3.jsp";
           }
       });
在servlet中,当我使用request.getParameterNames()并将其打印到控制台时,我会得到参数名
rooms[0][key]
etcetera,但我无法以任何方式解析JSON数组rooms。我已尝试解析由
request.getParameter(“rooms”)
.getParameterValues(“rooms”)
变量返回的对象,但它们都返回空值

我在jQuery中格式化JSON数据的方式是否有问题,或者是否有一种方法可以解析servlet中缺少的JSON


请求更多的代码,尽管servlet仍然非常空,因为我无法理解如何解析数据。

数据
参数
$.ajax()
使用一个表示请求参数映射的JS对象。因此,您提供给它的任何JS对象都将转换为请求参数。由于将JS对象传递给它,因此它被视为请求参数映射。您需要准确地通过其请求参数名称表示来访问各个参数

String name1 = request.getParameter("rooms[0][name]");
String capacity1 = request.getParameter("rooms[0][capacity]");
String name2 = request.getParameter("rooms[1][name]");
String capacity2 = request.getParameter("rooms[1][capacity]");
// ...
您可以通过以下方法找到它们:

通过这种方式,它可以通过
request.getParameter(“rooms”)
以JSON字符串的形式提供,您可以反过来使用任意JSON API对其进行解析


与具体问题无关,对于非jQuery对象,不要在jQuery中使用
$
变量前缀。这使得JS/jQuery专家更容易混淆您的代码。它只用于真正的jQuery对象,而不用于普通的字符串或原语

var $foo = "foo"; // Don't do that. Use var foo instead.
var $foo = $("someselector"); // Okay.
for (int i = 0; i < Integer.MAX_VALUE; i++) {
    String name = request.getParameter("rooms[" + i + "][name]");
    if (name == null) break;
    String capacity = request.getParameter("rooms[" + i + "][capacity]");
    // ...
}
data: { "rooms": roomsAsString }
var $foo = "foo"; // Don't do that. Use var foo instead.
var $foo = $("someselector"); // Okay.