これは簡単なことですが、わかりません。次の結果セットから次の方法でJSON応答を作成する必要があります
これはデータベースから受け取った結果セットです。
Name Method Value
Website Online 450
Website Offline 500
Mobile Online 100
Mobile Offline 600
次のJSON形式の応答をフロントエンドに送信する必要があります。
response: [
{
"Name" : "Website",
"Online" : 450,
"Offline" : 500
},
{
"Name" : "Mobile",
"Online" : 100,
"Offline" : 600
}
]
JSONを単一のループで、好ましくはResultSet自体を読みながら作成する必要があります。それを達成する最良の方法は何ですか? ありがとうございます。
P.S:クエリはすでに複雑なので、テーブルパフォーマンスの問題をピボットできません。上記のResultSetはサンプルであり、ResultSetには何百ものレコードが含まれている可能性があります。
更新: 次のソリューションの効率はよくわかりませんが、動作します。
Map<String, Map<String, Object>> objectMap = new LinkedHashMap<String,Map<String, Object>>();
Map<String, Object> map;
while(rs.next()){
if(objectMap.containsKey(rs.getString("Name"))){
map = objectMap.get(rs.getString("Name"));
map.put(rs.getString("Method"), rs.getInt("Value"));
}
else {
map = new HashMap<String, Object>();
map.put("Tag", 0);
map.put("Plate", 0);
map.put("Name", rs.getString("Name"));
map.put(rs.getString("Method"), rs.getInt("Value"));
}
objectMap.put(rs.getString("Name"), map);
}
return objectMap.values();
"answers"の下にあなたのソリューションを投稿し、それをあなた自身が受け入れることができます。 –
@ BenediktS.Voglerそれをやった!ありがとうございました。! – Naveen