Java 如何将JSONArray从一个JSP传递到另一个JSP,并在表中显示结果?

Java 如何将JSONArray从一个JSP传递到另一个JSP,并在表中显示结果?,java,json,jsp,arrays,jsonobject,Java,Json,Jsp,Arrays,Jsonobject,下面是我的JSP页面abc.JSP,我使用jQuery调用另一个JSP页面jspConnection.JSP,然后jspConnection.JSP将查询结果返回给abc.JSP,然后我需要使用结果在表中显示它们- 下面是我在abc.jsp中调用jspConnection.jsp的代码- $.post("jspConnection.jsp", {'id': id}, function (data) { // make a new table here fr

下面是我的JSP页面abc.JSP,我使用jQuery调用另一个JSP页面jspConnection.JSP,然后jspConnection.JSP将查询结果返回给abc.JSP,然后我需要使用结果在表中显示它们-

下面是我在abc.jsp中调用jspConnection.jsp的代码-

$.post("jspConnection.jsp", {'id': id},
        function (data) {
            // make a new table here from JSONObject
            // and show the result here
        }
);
在迭代JSONObject之后,表在abc.jsp中应该是这样的-

FirstName           LastName                Address             Email                   PhoneNumber
SomeValue           SomeOtherValue          SomeOtherValue      SomeOtherValue          SomeOtherValue
...                 ...                     ...                 ....                    ....
...                 ...                     ...                 ....                    ....
下面是jspConnection.jsp,我将从中将sql查询结果返回到abc.jsp页面。我的SQL查询将返回多行

下面是我正在执行的sql查询-

SELECT FirstName, LastName, Libs, Email, PhoneNumber from Testing;
现在,我需要返回上述SELECT查询的JSON对象-

JSONObject obj = new JSONObject();
JSONArray list = new JSONArray();

while (resultSet.next()) {

// This might be wrong way to make an object for my scenario
    obj.put("FirstName", rs.getString(1)) ;
    obj.put("LastName", rs.getString(2)) ;
    obj.put("Address", rs.getString(3)) ;
    obj.put("Email", rs.getString(4)) ;
    obj.put("PhoneNumber", rs.getString(5)) ;
}
list.add(obj);

response.getWriter().write(obj.toString());
现在我不知道如何返回JSONObject,以便在abc.jsp中正确创建表。。由于目前我制作JSONObject和JSONArray的方式不正确,我想我无法理解如何正确地制作它?

您需要在每次迭代开始时创建一个新的JSONObject,并且必须在每次迭代结束时将其添加到JSONArray中。也许是这样,

JSONArray list = new JSONArray();

while (resultSet.next()) {
  JSONObject obj = new JSONObject();       // Move this here.
  // This might be wrong way to make an object for my scenario
  obj.put("FirstName", rs.getString(1));
  obj.put("LastName", rs.getString(2));
  obj.put("Address", rs.getString(3));
  obj.put("Email", rs.getString(4));
  obj.put("PhoneNumber", rs.getString(5));
  list.add(obj);                           // And this here.
}

谢谢艾略特的建议。知道如何将这个JSONArray发送到我的abc.jsp,然后相应地生成表吗?您可能不应该这样做。将JSONArray返回给客户端,并使用jQuery在浏览器中呈现它。您在这里谈论的是哪个客户端?在我的场景中,客户机是abc.jsp,它正在调用jspConnection.jsp,这个jspConnection.jsp运行select查询,并将数据返回给abc.jsp,以便在abc上显示结果。jsp@akiiddweeber那么为什么要将数据序列化为JSON呢?只需将HTML编写为jspConnection.jsp,以便在abc.jspI上呈现。我正在序列化数据bcoz,我认为这是将对象从一个jsp jspConnection.jsp发送到另一个JSPabc.jsp的唯一方法。简而言之,我需要在abc.jsp页面中生成一个包含所有列及其值的表。。因此,这就是我调用jspConnection.jsp的原因,它可以为我提供JSONObject,我可以使用它反序列化并在表中呈现它。。我不能按原样写,因为我在abc.jsp中还有一个表,而这个新表需要在原始表的下方呈现。。