String selectTableSQL = "SELECT USER_ID, USERNAME from DBUSER";
Statement statement = dbConnection.createStatement();
ResultSet rs = statement.executeQuery(selectTableSQL);
while (rs.next()) {
String userid = rs.getString("USER_ID");
String username = rs.getString("USERNAME");
}
使用上面的代码..我能够与postgres建立连接并显示数据库表中的值。 但是如何解析JSON Select查询 -
select array_to_json(array_agg(row_to_json(t)))
from (
select USER_ID, USERNAME from DBUSER
) t
postgres中上述Select查询的结果json结构是 -
[{user_id:"123",username:"abc"},{user_id:"234",username:"pqr"}]
不了解如何阅读上述json"选择"从postgres查询并显示值" USER_ID"和" USERNAME"分别在java。
我只是一个初学者。任何帮助都会受到赞赏。提前谢谢。
答案 0 :(得分:1)
你应该像这样使用Jackson - ObjectMapper类
ObjectMapper mapper = new ObjectMapper();
List<User> userList = mapper.readValue(jsonString, typeFactory.constructCollectionType(List.class, User.class));
for(User val : userList){
System.out.println("User id : "+val.getUserId);
System.out.println("User id : "+val.getUserName);
}
它也可以正常使用
List<User> userList= Arrays.asList(mapper.readValue(json, User[].class));
答案 1 :(得分:0)
让我假设您的模型如下所示
public class User {
public int userId;
public String userName;
}
使用Gson将您的JSON字符串(查询的返回)转换为模型列表(在您的情况下为用户)。
Gson gson = new Gson();
Type type = new TypeToken<List<User >>(){}.getType();
List<User> userList = gson.fromJson(jsonString, type); // where jsonString = "[{user_id:"123",username:"abc"},{user_id:"234",username:"pqr"}]" (the return of your query)
for (User user: userList ){
System.out.println("user " + user);
}