2013-03-29 41 views
-1

每当我将第二个JSONObject添加到JSONArray时,它会覆盖前面的数组对象值。 我的Java servlet代码是 -在java中添加第二个json对象到相同的json数组中

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"}] 

有人可以请给我解决这个

+0

这对我没有意义:j.add(“uid”,j); jr.add(“fname”,j); j.add(“lname”,j); – Marco

+0

@Anu你正在使用哪个软件包/版本?您使用的'add'方法与我在http://www.json.org/javadoc/org/json/JSONObject.html上找到的api不匹配。 – user1766760

+0

@ user1766760我正在使用google-gson-2.2。 2释放。这里没有put方法。 – Anu

回答

3

您正在修改的JSONObject的同一个实例中循环。在循环中创建新的JsonObject,

for(int i=0;i<uid_list.size();i++){ 
    j=new JsonObject(); 
    out.println(uid_list.get(i).toString()); 
+0

非常感谢。这有帮助。 – Anu

相关问题