gpt4 book ai didi

java - java中如何将数据库结果集转换为JSON格式?

转载 作者:行者123 更新时间:2023-12-05 07:51:33 25 4
gpt4 key购买 nike

我想将数据库中的结果集转换为 json 格式,问题是当结果集返回为具有相同 ID 的多行且包含一些重复数据时。

数据库示例:

===========================================================
USER_ID NAME PHONE_NUMBER CITY
===========================================================
1 JACK 079999999999 New York
1 JACK 078888888888 Las Vegas

我想让我的 json 主体看起来像:

{ "USER_ID": 1,"NAME": JACK,"PHONE_NUMBER":[ 079999999999, 078888888888 ], "CITY": [ New York, Las Vegas ]}

这是我的代码:

                Statement stmt = con.createStatement();
// Execute the SQL Query. Store results in ResultSet
ResultSet rs = stmt.executeQuery(Query);
System.err.println("Executing the query please wait ...");
ResultSetMetaData rsmd=null;
rsmd=(ResultSetMetaData) rs.getMetaData();
int columnsCount=rsmd.getColumnCount();


for (int j = 1; j <= columnsCount; j++) {
System.err.print(rsmd.getColumnName(j) + " || ");
}


JSONArray jsonArray = new JSONArray();
while (rs.next()) {
int total_rows = rs.getMetaData().getColumnCount();
JSONObject obj = new JSONObject();

for (int i = 0; i < total_rows; i++) {
String columnName = rs.getMetaData().getColumnLabel(i + 1).toLowerCase();
Object columnValue = rs.getObject(i + 1);

// if value in DB is null, then we set it to default value
if (columnValue == null){
columnValue = "null";
}

if (obj.has(columnName)){
columnName += "1";
}
obj.put(columnName, columnValue);

}
jsonArray.put(obj);

System.out.print("\n");
System.out.print("\n");

String gsonBody = gson.toJson(jsonArray);

System.err.println(gsonBody);
}
return jsonArray;

我怎样才能使这个具有不同结果集的所有可能场景通用。

最佳答案

您使用的是哪种 RDBMS?如果 Postgres/db2 是您的数据库,那么您可以直接将结果集作为 JSON 返回。

关于java - java中如何将数据库结果集转换为JSON格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34856229/

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