0

下面是我的 JSP 页面(abc.jsp),我从中jspConnection.jsp使用 jQuery 调用另一个 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 的方式不正确,我猜所以无法理解如何正确地做到这一点?

4

1 回答 1

0

您需要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.
}
于 2014-01-12T01:09:38.540 回答