2016-11-17 7 views
0
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選択クエリを解析するために -postgresからjsonクエリを取得してJavaで表示

select array_to_json(array_agg(row_to_json(t))) 
from (
    select USER_ID, USERNAME from DBUSER 
) t 

postgresの中に上記の選択クエリの結果のJSON構造がある -

[{user_id:"123",username:"abc"},{user_id:"234",username:"pqr"}] 

は、上記のJSONを読んでから、クエリを「選択」する方法を理解していませんpostgresを開き、値 "USER_ID"と "USERNAME"をjavaで個別に表示します。

私はちょうど初心者です。どんな助けもありがとうございます。お元気ですか。

+0

[このチュートリアル]を動作し、この

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); } 

ようJackson - ObjectMapperクラスを使用する必要があります(https://www.tutorialspoint.com/json/json_java_example。 htm)はjsonとjavaオブジェクトの解析に役立ちます。 代わりに、Javaへのjsonの解析に[gson](https://github.com/google/gson)や[jackson](http://wiki.fasterxml.com/JacksonInFiveMinutes)のようなライブラリを使用することもできます。 – Laxman

答えて

0

は私はあなたのモデルがモデル(あなたのケースでは、ユーザ)のリストにあなたのJSON文字列(クエリの戻り値)を変換するために

public class User { 
public int userId; 
public String userName; 
} 

使用Gson以下のようなものであると仮定してみましょう。

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); 
} 
1

あなたは、それはまた、細かい

List<User> userList= Arrays.asList(mapper.readValue(json, User[].class)); 
関連する問題