Arrays 从resultset检索列表数据并转换为JSON
我是json新手。我想从ResultSet中获取所有值,并将其设置为正确的JSON格式。我不知道如何解决这个问题。我从stackoverflow尝试了很多东西,但我无法解决这个问题。请任何人帮我摆脱这一切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
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}]