当前位置: 首页 > 面试题库 >

如何使用一个ajax请求从java servlet返回多个json对象

堵才哲
2023-03-14
问题内容

我正在使用jsp和servlet构建Web应用程序,我从jsp发送ajax请求,我想从servlet返回两个json对象。我尝试执行以下操作,但是代码不起作用。

//在jquery中,我编写了这段代码

        var id = $(this).attr('id');

        var paramenters = {"param":id};

        $.getJSON("MyServlet", paramenters, function (data1,data2){

            $("h3#name").text(data1["name"]);

            $("span#level").text(data1["level"]);

            $("span#college").text(data2["college"]);

            $("span#department").text(data2["department"]);

        });

//在servlet中,我编写了此代码

    String json1 = new Gson().toJson(object1);

    String json2 = new Gson().toJson(object2);

    response.setContentType("application/json");

    response.setCharacterEncoding("utf-8");

    response.getWriter().write(json1);

    response.getWriter().write(json2);

有人能帮我吗???


问题答案:

您应该这样做:

服务器端:

String json1 = new Gson().toJson(object1); 
String json2 = new Gson().toJson(object2); 
response.setContentType("application/json"); 
response.setCharacterEncoding("utf-8"); 
String bothJson = "["+json1+","+json2+"]"; //Put both objects in an array of 2 elements
response.getWriter().write(bothJson);

客户端:

$.getJSON("MyServlet", paramenters, function (data){ 
   var data1=data[0], data2=data[1]; //We get both data1 and data2 from the array
   $("h3#name").text(data1["name"]); 
   $("span#level").text(data1["level"]); 
   $("span#college").text(data2["college"]); 
   $("span#department").text(data2["department"]);
});

希望这可以帮助。干杯



 类似资料:
  • 我正在尝试使用FastAPI MongoDB创建一个API,它可以从请求中返回多个值。MongoDB充满了数据,使用mongoengine,我可以在向特定endpoint发送请求时查阅一个或所有数据。我现在要做的是从endpoint接收一个或多个数据,例如: 当查询endpoint< code > http://127 . 0 . 0 . 1:8000/rice 时,我得到一个JSON响应,其中包

  • 我想建立一个网站,使用客户端调用一个带有JavaScript的API。我不知道怎么做,所以我搜索了一下,发现了jQuery。然后我编写了我的函数来发出请求。它看起来如下所示: 这工作良好,print语句打印接收到的数据。但是如果我从另一个函数调用这个函数,它不会返回任何东西。每次都是未定义的。一个例子: 如果我运行这个,它会通过第二个print语句输出接收到的数据,但第一个总是返回“undefin

  • 问题内容: 我有一个函数,用关键字声明一个变量。然后,它将启动AJAX请求以设置变量的值,然后从函数中返回此变量。 但是,我的实现失败了,我也不知道为什么。 这是代码的简化版本; 问题答案: AJAX请求是异步的。您的sendRuest函数正在执行,正在发出AJAX请求,但它是异步发生的;因此,sendRuest的其余部分在AJAX请求(和onreadystatechange处理程序)执行之前就已

  • 问题内容: 我必须在循环上进行一系列Ajax请求。其中约有100个。每个请求都返回一个JSONP变量。我从JSON提取数据,并将该值附加到div中。问题是我希望div以函数调用的顺序附加数据。即顺序。现在,我每次刷新页面时都会得到不同的顺序,具体取决于请求完成的顺序。这是我的代码。 当我在div中显示索引值时,每次我得到随机订单。有时是2 4 3 1 7,有时是1 5 2 7 4。我什至尝试asy

  • 问题内容: 选项:使用元组 考虑下面这个简单的例子: 但是,随着返回值的数量增加,这很快就会成为问题。如果要返回四个或五个值怎么办?当然,你可以继续修改它们,但是很容易忘记哪个值在哪里。在任何想要接收它们的地方打开它们的包装也是很丑陋的。 选项:使用字典 下一步的逻辑步骤似乎是引入某种“记录符号”。在Python中,一种明显的方法是使用dict。 考虑以下: (请注意,y0,y1和y2只是抽象标识

  • 问题内容: 我想从Java方法返回两个对象,并且想知道这样做的好方法是什么? 我能想到的可能的方法是:回报HashMap(因为这两个对象是相关的),或者返回的对象。 更准确地说,我要返回的两个对象是(a)对象和(b)相同名称的逗号分隔。 我想从一个方法返回这两个对象,因为我不想遍历对象列表以获得逗号分隔的名称(我可以在此方法的同一循环中执行此操作)。 不知何故,返回a 看起来不是很优雅的方式。 问