Java 正确显示将SQL结果集转换为JSON

Java 正确显示将SQL结果集转换为JSON,java,json,postgresql,jdbc,resultset,Java,Json,Postgresql,Jdbc,Resultset,我正在尝试为web服务实现java方法,该方法应该从表中检索数据并以json格式返回结果。为此,我使用json_agg()函数将查询结果转换为我想要显示的json,但到目前为止它的显示格式是错误的。以下是方法本身: public String GetRowsFromTable() throws SQLException { Connection connection = null; String result = ""; try { connection

我正在尝试为web服务实现java方法,该方法应该从表中检索数据并以json格式返回结果。为此,我使用json_agg()函数将查询结果转换为我想要显示的json,但到目前为止它的显示格式是错误的。以下是方法本身:

public String GetRowsFromTable() throws SQLException {

    Connection connection = null;
    String result = "";
    try {
        connection = Connection.getConnection();
        PreparedStatement prepStmt = conn.prepareStatement("SELECT json_agg(table1) FROM table");
        ResultSet rs = prepStmt.executeQuery();
        result += rs;
        System.out.println(rs);
    } catch (SQLException sqlex) {
        sqlex.printStackTrace();
    } finally {
        connection.close();
    }

    return result;
}
控制台显示以下结果:

org.postgresql.jdbc.PgResultSet@5179f609

任何帮助都将不胜感激。

您需要遍历
结果集
并检索每一列。
ResultSet
实例不是您的实际结果,它是结果的容器。查询返回一列,因此可以通过索引1访问该列的内容(JDBC列索引从1开始,而不是像Java中通常的0)。要将结果集移动到下一行,需要使用
next()

通常,您会使用
while()
循环来迭代
ResultSet
中的所有行,但由于聚合,您的查询将只返回一行,因此不需要这样做。确实要将表的所有行作为一个巨大的JSON文档吗。如果表包含一百万行怎么办

Java JDBC教程对此进行了详细说明:


但是它以错误的格式显示,到目前为止,这意味着完全没有任何意义。另外,这是
对象上
.toString()
的默认输出,调用
结果集
并不正确,只需查看
结果集
的源代码,它只执行
对象
上的默认值。我认为您需要阅读关于您正在尝试做什么的文档,或者如果您已经做了,请再次阅读。
ResultSet rs = prepStmt.executeQuery();
if (rs.next()) {
    System.out.println(rs.getString(1));
}