Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSONArray打印相同的值_Json_Jsp - Fatal编程技术网

JSONArray打印相同的值

JSONArray打印相同的值,json,jsp,Json,Jsp,JSON对象obj被插入到JSONArray arr中,但是当打印数组时,会针对ResultSet的迭代次数打印相同的对象 有人能告诉我出了什么错吗 try { connection = DriverManager.getConnection(connectionUrl+dbName, userId,password); statement=connection.createStatement(); statement2=connection.createStateme

JSON对象
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();
}

谢谢:)很有魅力!谢谢:)很有魅力!谢谢你的回答!解决:)谢谢你的回答!解决:)