我经常搜索但无法得到满意的解决方案。
我的目标是使用JSON
中的JSONObject
和JSONArray
来ResultSet
。循环后,当我在控制台中打印结果时,它会重复ResultSet
的最后一个值。我的代码片段如下:
JSONObject objMain = new JSONObject();
JSONObject obj1 = new JSONObject();
JSONArray arrMain = new JSONArray();
preparedStatement = con.prepareStatement("SELECT Id, Role, Admin_User_Role_ID FROM ADMIN_ROLES");
ResultSet rs = preparedStatement.executeQuery();
if (rs != null) {
while (rs.next()) {
obj1.put("Id", rs.getInt("Id"));
obj1.put("Role", rs.getString("Role"));
arrMain.add(obj1);
objMain.put(null,arrMain);
}
}
System.out.println("JSON: " + objMain);
获得以下不正确的结果:
JSON: {"null":[{"Role":"Bulk Peripheral Provisioning Admin","Id":29},{"Role":"Bulk Peripheral Provisioning Admin","Id":29},{"Role":"Bulk Peripheral Provisioning Admin","Id":29}]}
有人可以指导我做错了什么! 注意:请不要建议任何内置方法
答案 0 :(得分:0)
我得到的解决方案问题是obj1
的初始化,方法是在while (rs.next()) {...}
重置删除后放置以下语句!
obj1 = new JSONObject();