Arrays 从resultset检索列表数据并转换为JSON

Arrays 从resultset检索列表数据并转换为JSON,arrays,json,postgresql,rest,resultset,Arrays,Json,Postgresql,Rest,Resultset,我是json新手。我想从ResultSet中获取所有值,并将其设置为正确的JSON格式。我不知道如何解决这个问题。我从stackoverflow尝试了很多东西,但我无法解决这个问题。请任何人帮我摆脱这一切 String query = "SELECT emp_id, code, salary FROM emp_tbl"; ResultSet rs = stmt.executeQuery(query); ArrayList<String> list = new ArrayList&l

我是json新手。我想从ResultSet中获取所有值,并将其设置为正确的JSON格式。我不知道如何解决这个问题。我从stackoverflow尝试了很多东西,但我无法解决这个问题。请任何人帮我摆脱这一切

String query = "SELECT emp_id, code, salary  FROM emp_tbl";
ResultSet rs = stmt.executeQuery(query);
ArrayList<String> list = new ArrayList<String>();
while (rs.next()) {
    emp_id = rs.getString("emp_id");
    code = rs.getString("code");
    salary = rs.getString("salary");

    list.add("emp_id");
    list.add("code");
    list.add("salary");
    jsonarray = new JSONArray(list);
}
System.out.println("jsonarray: "+jsonarray);
但应该是这样的

[
  {
    "emp_id": "1",
    "code": "5563",
    "salary": 11000
  }, {
    "emp_id": "2",
    "code": "5463",
    "salary": 14000
  }
]
如果我试试这个

while (rs.next()) {                 
    emp_id = rs.getString("emp_id");
    code = rs.getString("code");
    salary= rs.getString("salary");
    jsonarray.put("emp_id");
    jsonarray.put("code ");
    jsonarray.put("salary");
} 
System.out.println("jsonarray: "+jsonarray); 
然后输出为

jsonarray: {"emp_id":"5","code":"526","salary":"10000"}
它只获取最后一行,但不获取所有值。

来自Oracle文档:

生成此输出: [{type:home,编号:212 555-1234},{type:fax,编号:646 555-4567}]

来自Oracle文档:

生成此输出:
[{type:home,number:212 555-1234},{type:fax,number:646 555-4567}]

从查询返回对象的json数组:

select json_agg(row_to_json(emp_tbl)) as my_json
from (values
    ('1','5563',11000),
    ('2','5463',14000)      
) emp_tbl (emp_id, code, salary)
;
                                          my_json                                           
--------------------------------------------------------------------------------------------
 [{"emp_id":"1","code":"5563","salary":11000}, {"emp_id":"2","code":"5463","salary":14000}]

从查询返回对象的json数组:

select json_agg(row_to_json(emp_tbl)) as my_json
from (values
    ('1','5563',11000),
    ('2','5463',14000)      
) emp_tbl (emp_id, code, salary)
;
                                          my_json                                           
--------------------------------------------------------------------------------------------
 [{"emp_id":"1","code":"5563","salary":11000}, {"emp_id":"2","code":"5463","salary":14000}]

谢谢你的回答。但据我所知,它将返回json数组。但我的问题是如何使这个查询动态化。我尝试这样执行,从emp_id、code、salary emp_tbl emp_id、code、salary值中选择json_aggrow_到jsonemp_tbl;但它显示列名称emp_id不是found@rockroyal给列一个别名,就像我在更新中做的那样:作为my_jsonIn而不是from value。。。从emp_tbl使用。我使用值只是为了填充一些示例值。非常感谢您的回答。选择json_aggROW.*从emp_id、code、salary FROM emp_tblROW中选择;这对我有用。谢谢你的回答。但据我所知,它将返回json数组。但我的问题是如何使这个查询动态化。我尝试这样执行,从emp_id、code、salary emp_tbl emp_id、code、salary值中选择json_aggrow_到jsonemp_tbl;但它显示列名称emp_id不是found@rockroyal给列一个别名,就像我在更新中做的那样:作为my_jsonIn而不是from value。。。从emp_tbl使用。我使用值只是为了填充一些示例值。非常感谢您的回答。选择json_aggROW.*从emp_id、code、salary FROM emp_tblROW中选择;这对我有用。
select json_agg(row_to_json(emp_tbl)) as my_json
from (values
    ('1','5563',11000),
    ('2','5463',14000)      
) emp_tbl (emp_id, code, salary)
;
                                          my_json                                           
--------------------------------------------------------------------------------------------
 [{"emp_id":"1","code":"5563","salary":11000}, {"emp_id":"2","code":"5463","salary":14000}]