2017-03-24 24 views
0

JSONオブジェクトobjJSONArray arrに挿入されますが、配列が印刷されると、同じオブジェクトが反復回数ResultSetとして出力されます。同じ値を出力するJSONArray

誰かが間違いを教えてもらえますか?あなたは、各反復で同じオブジェクトを変異し、リストに同じオブジェクトを追加しているループで

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

答えて

1

。そのオブジェクトへの次の反復で行った変更は、です。これは、リストに格納されているオブジェクトへの変更です。です。だから最後にあなたのリストには同じオブジェクトへの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(); 
} 
+0

ありがとう:)魅力的な作品です! – ProgrammerX

1

私はあなたの問題は、オブジェクト「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(); 
} 
+0

答えをありがとう!解決済みの:) – ProgrammerX

関連する問題