gpt4 book ai didi

java - java servlet 中的 ResultSet 为 Json

转载 作者:行者123 更新时间:2023-12-02 04:33:44 25 4
gpt4 key购买 nike

尝试从数据库获取数据并存储在 JSON 对象中,如下所示:

try {
JsonObject jsonResponse = new JsonObject();
JsonArray data = new JsonArray();
JsonArray row = new JsonArray();
PrintWriter out = response.getWriter();

Connection con = OracleDBConnection.getConnection();
String query = "Select * from CUSTOMER_DEMOGRAPHICS";
Statement st = con.createStatement();
ResultSet rSet = st.executeQuery(query);

while (rSet.next())
{
row.add(new JsonPrimitive(rSet.getString("COUNTRY")));
row.add(new JsonPrimitive(rSet.getString("STATE")));
row.add(new JsonPrimitive(rSet.getString("CITY")));
data.add(row);
}

jsonResponse.add("ResponseData", data);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");

out.print(jsonResponse);
out.flush();
System.out.println(jsonResponse);

} catch (Exception e) {
e.printStackTrace();
}
}

数据库中的表结构:

COUNTRY     STATE       CITY
================================
AUSTRALIA VICTORIA MELBOURNE
AUSTRALIA NEW SOUTH SYDNEY

问题是当我打印 json 时,它为每行打印两次,如下所示,而不是一次。

{
“响应数据”:
[[“澳大利亚”、“维多利亚”、“墨尔本”、“澳大利亚”、“新南威尔士州”、“悉尼”],[“澳大利亚”、“维多利亚”、“墨尔本”、“澳大利亚”、“新南威尔士州”、“悉尼”]]
}

最佳答案

您正在创建一行,并将其添加到数组中两次。线路

JsonArray row = new JsonArray();

应该内部循环。不在外面。

关于java - java servlet 中的 ResultSet 为 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31101396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com