0

2 番目の JSONObject を JSONArray に追加するたびに、以前の配列オブジェクトの値が上書きされます。私のJavaサーブレットコードは-

  JsonArray ja=new JsonArray();
  JsonObject j;  
  j = new JsonObject();

  j.add("uid", j);
  j.add("fname", j);
  j.add("lname", j);

  for(int i=0;i<uid_list.size();i++){
      out.println(uid_list.get(i).toString());
      out.println(fname_list.get(i).toString());                  
      out.println(lname_list.get(i).toString());
      j.addProperty("uid", uid_list.get(i).toString());
      j.addProperty("fname", fname_list.get(i).toString());
      j.addProperty("lname", lname_list.get(i).toString());
      ja.add(j);
      out.println(ja.toString());

  }

  out.println(ja.toString());

出力は次のとおりです。

abc bcd cde [{"uid":"abc","fname":"bcd","lname":"cde"}] xyz wxy uyw [{"uid":"xyz","fname":"wxy","lname":"uyw"},{"uid":"xyz","fname":"wxy","lname":"uyw"}] [{"uid":"xyz","fname":"wxy","lname":"uyw"},{"uid":"xyz","fname":"wxy","lname":"uyw"}]

誰かが私にこれの解決策を教えてください

4

1 に答える 1

3

ループ内で JsonObject の同じインスタンスを変更しています。ループで新しい JsonObject を作成し、

for(int i=0;i<uid_list.size();i++){
  j=new JsonObject();
  out.println(uid_list.get(i).toString());
于 2013-03-29T19:32:35.153 に答える