2016-10-06 2 views
0

У меня естьJava ResultSet столбцам выход для JSON

ResultSet rs = sql.getData(con, query); 

с двумя колоннами и несколькими рядами. Я хочу, чтобы получить данные в виде выхода в выходной стиле JSON как:

x: [1, 2, 3, 4], 

y: [2.37, 2.16, 4.82, 1.73], 

Итак, я хочу первые данные column1 записываются в первой строке «х», а затем второй COLUMN2 у.

Вся документация, я найти о переборе данные в результирующем является рядам, как для вывода HTML таблицы, как

while (rs.next()) { 
     out.append("<tr>"); 
     for (int col = 1; col < rsMeta.getColumnCount() + 1; col++) { 
      out.append("<td>"); 
      out.append(rs.getString(col)); 
      out.append("</td>"); 
     } 
     out.append("</tr>"); 
     cnt++; 
    } 
+0

Как насчет того, чтобы попробовать написать код для создания JSON в первую очередь? –

+0

Вы говорите о JSON, но в своем коде вы создаете XML (очень наивно). Вы хотите XML или JSON? Для обоих вы должны использовать библиотеку вместо создания выходного формата в виде текста. – vanje

+0

Я не хочу создавать объект JSON в Java. Я просто хочу вывести его для webapp в режиме JSON. Я уже пробовал библиотеку json-simple, но не мог сделать ее так, как я хотел. – tardis

ответ

1

Вы должны итерируем ResultSet ровно один раз, но так как вы хотите, чтобы значения от колонки , а не по строкам, вам необходимо сохранить их в List объектах.

Что-то вроде этого:

List<Integer> x = new ArrayList<>(); 
List<Double> y = new ArrayList<>(); 
while (rs.next()) { 
    x.add(rs.getInt(1)); 
    y.add(rs.getDouble(2)); 
} 
System.out.println("x: " + x + ","); 
System.out.println("y: " + y + ",");