JSONArray打印相同的值
JSON对象JSONArray打印相同的值,json,jsp,Json,Jsp,JSON对象obj被插入到JSONArray arr中,但是当打印数组时,会针对ResultSet的迭代次数打印相同的对象 有人能告诉我出了什么错吗 try { connection = DriverManager.getConnection(connectionUrl+dbName, userId,password); statement=connection.createStatement(); statement2=connection.createStateme
obj
被插入到JSONArray arr
中,但是当打印数组时,会针对ResultSet
的迭代次数打印相同的对象
有人能告诉我出了什么错吗
try {
connection = DriverManager.getConnection(connectionUrl+dbName, userId,password);
statement=connection.createStatement();
statement2=connection.createStatement();
String sql1 ="SELECT * FROM patient_detail where nurseid="+uidd;
resultSet = statement.executeQuery(sql1);
while(resultSet.next())
{
obj.put("fname", resultSet.getString("fname"));
obj.put("lname", resultSet.getString("lname"));
obj.put("pid", resultSet.getString("pid"));
obj.put("gender", resultSet.getString("gender"));
obj.put("dob", resultSet.getString("dob"));
obj.put("appdate", resultSet.getString("appdate"));
obj.put("diseaseid", resultSet.getString("diseaseid"));
list.add(obj);
}
String jsonText1 = JSONValue.toJSONString(list);
connection.close();
}
在循环中,您在每次迭代中对同一对象进行变异,然后将同一对象添加到列表中。在下一次迭代中对该对象所做的任何更改都是对存储在列表中的对象所做的更改。因此,在列表的末尾包含对同一对象的n个引用 要解决此问题,请在每次迭代中创建一个新对象:
try {
connection = DriverManager.getConnection(connectionUrl+dbName, userId,password);
statement=connection.createStatement();
statement2=connection.createStatement();
String sql1 ="SELECT * FROM patient_detail where nurseid="+uidd;
resultSet = statement.executeQuery(sql1);
while(resultSet.next())
{
obj = new JSONObject(); // <----
obj.put("fname", resultSet.getString("fname"));
obj.put("lname", resultSet.getString("lname"));
obj.put("pid", resultSet.getString("pid"));
obj.put("gender", resultSet.getString("gender"));
obj.put("dob", resultSet.getString("dob"));
obj.put("appdate", resultSet.getString("appdate"));
obj.put("diseaseid", resultSet.getString("diseaseid"));
list.add(obj);
}
String jsonText1 = JSONValue.toJSONString(list);
connection.close();
}
试试{
connection=DriverManager.getConnection(connectionUrl+dbName、userId、密码);
statement=connection.createStatement();
statement2=connection.createStatement();
String sql1=“从患者详细信息中选择*,其中nurseid=“+uidd;
resultSet=statement.executeQuery(sql1);
while(resultSet.next())
{
obj=new JSONObject();//在循环中,您在每次迭代中对同一对象进行变异,然后将同一对象添加到列表中。您在下一次迭代中对该对象所做的任何更改都是对存储在列表中的对象的更改。因此,在最后,您的列表包含对同一对象的n个引用
要解决此问题,请在每次迭代中创建一个新对象:
try {
connection = DriverManager.getConnection(connectionUrl+dbName, userId,password);
statement=connection.createStatement();
statement2=connection.createStatement();
String sql1 ="SELECT * FROM patient_detail where nurseid="+uidd;
resultSet = statement.executeQuery(sql1);
while(resultSet.next())
{
obj = new JSONObject(); // <----
obj.put("fname", resultSet.getString("fname"));
obj.put("lname", resultSet.getString("lname"));
obj.put("pid", resultSet.getString("pid"));
obj.put("gender", resultSet.getString("gender"));
obj.put("dob", resultSet.getString("dob"));
obj.put("appdate", resultSet.getString("appdate"));
obj.put("diseaseid", resultSet.getString("diseaseid"));
list.add(obj);
}
String jsonText1 = JSONValue.toJSONString(list);
connection.close();
}
试试{
connection=DriverManager.getConnection(connectionUrl+dbName、userId、密码);
statement=connection.createStatement();
statement2=connection.createStatement();
String sql1=“从患者详细信息中选择*,其中nurseid=“+uidd;
resultSet=statement.executeQuery(sql1);
while(resultSet.next())
{
obj=newjsonobject();//我想你的问题可能是对象“obj”。
尝试在每次迭代中创建新的obj
while(resultSet.next())
{
obj = new JSONObject();
obj.put("fname", resultSet.getString("fname"));
obj.put("lname", resultSet.getString("lname"));
obj.put("pid", resultSet.getString("pid"));
obj.put("gender", resultSet.getString("gender"));
obj.put("dob", resultSet.getString("dob"));
obj.put("appdate", resultSet.getString("appdate"));
obj.put("diseaseid", resultSet.getString("diseaseid"));
list.add(obj);
}
String jsonText1 = JSONValue.toJSONString(list);
connection.close();
}
我猜你的问题可能是对象“obj”。
尝试在每次迭代中创建新的obj
while(resultSet.next())
{
obj = new JSONObject();
obj.put("fname", resultSet.getString("fname"));
obj.put("lname", resultSet.getString("lname"));
obj.put("pid", resultSet.getString("pid"));
obj.put("gender", resultSet.getString("gender"));
obj.put("dob", resultSet.getString("dob"));
obj.put("appdate", resultSet.getString("appdate"));
obj.put("diseaseid", resultSet.getString("diseaseid"));
list.add(obj);
}
String jsonText1 = JSONValue.toJSONString(list);
connection.close();
}
谢谢:)很有魅力!谢谢:)很有魅力!谢谢你的回答!解决:)谢谢你的回答!解决:)