Java 将结果集数据转换为饼图(Google图表)格式

Java 将结果集数据转换为饼图(Google图表)格式,java,json,jdbc,charts,google-visualization,Java,Json,Jdbc,Charts,Google Visualization,JDBC的resultset的输出为: 我需要将其转换为: 名为data的Stringbuffer,用于保存 [ ['Tiles', 'Hours per Day'], ['Cabs tile', 1375], ['recharge tile', 3377], ['deals tile', 1603], ['jobs tile', 437],

JDBC的resultset的输出为:

我需要将其转换为:

名为data的Stringbuffer,用于保存

         [
          ['Tiles', 'Hours per Day'],
          ['Cabs tile',     1375],
          ['recharge tile',      3377],
          ['deals tile',  1603],
          ['jobs tile', 437],
          ['education tile',    247],
          ['shopping tile',    433],
          ['household tile',    220]
        ]
我试过使用:

    public static StringBuffer data= new StringBuffer();
ResultSet rs //contains data in it.
ResultSetMetaData rsmd = rs.getMetaData();

         String col1 = rsmd.getColumnName(1);
         String col2 = rsmd.getColumnName(2);
         String col3 = rsmd.getColumnName(3);
         String col4 = rsmd.getColumnName(4);
         String col5 = rsmd.getColumnName(5);
         String col6 = rsmd.getColumnName(6);
         String col7 = rsmd.getColumnName(7);
         String col8 = rsmd.getColumnName(8);
         String col9 = rsmd.getColumnName(9);
         String col10 = rsmd.getColumnName(10);


         data.append("[ ['Tiles', 'Hours per Day'],");

        String formatStr = "%n['%s','%s'],";

         while(rs.next()){

            int total_cols = rs.getMetaData().getColumnCount();
            data.append((String.format(formatStr, col4, rs.getString(col4))));//This line is incorrect
            }
data.append("]");
请注意,数据取自结果集的第4列,因为绘制饼图需要相同的数据


基本上,需要按列提取resultset中的数据,并且resultset中只有一列,您试图将结果集转换为Json字符串。因此,在java中使用它可以很容易地完成

参考代码

.....
   JSONArray jsonArray0 = new JSONArray();

        while(rs.next()){
            JSONArray jasub = new JSONArray();
            jasub.add(col4);
            jasub.add(rs.getString(col4));

            jsonArray0.add(jasub);

        }


    System.out.println(jsonArray0.toJSONString());

使用类似这样的循环来迭代结果行中的列:

ResultSetMetaData metaData = resultSet.getMetaData();
int numColumns = metaData.getColumnCount();
for (int i = 1; i <= numColumns; i++) { // columns are one-indexed
    String columnName = metaData.getColumnLabel(i);
    String value = resultSet.getString(i);
    // …
}
ResultSetMetaData=resultSet.getMetaData();
int numColumns=metaData.getColumnCount();

对于(int i=1;我只是写一个循环来迭代所需的列。@qqilihq,你能用代码详细说明一下吗?是的,你是对的,你能用代码详细说明一下吗