对象数组

时间:2018-11-07 08:22:35

标签: android json arraylist

对于android中的post方法 我必须发送对象数组。 我要从arrayList检索元素,然后将检索到的元素放入JSONObject中,而不是将其放入JSONArray中的JSONobject中。

JSONArray ccArray = new JSONArray();
{
    JSONObject object = new JSONObject();
    if (ccArrayList.size() != 0) {
        for (int i = 0; i < ccArrayList.size(); i++) {
            object.put("emailId", ccArrayList.get(i));
            ccArray.put(object);
        }
    } else {
        object.put("", "");
    }
}

当arraylist中的元素超过2个或2个以上时,它将ccrray中最后一个元素的添加次数与列表中元素的添加次数相同。

  

输出:   "cc":[{"emailId":"f@j.com"},{"emailId":"f@j.com"}]

3 个答案:

答案 0 :(得分:1)

  

像这样更改代码

 JSONObject obj = new JSONObject();
    JSONArray ccArray = new JSONArray();

                for (int i = 0; i < ccArrayList.size(); i++) {
                    JSONObject object = new JSONObject();
                    if (ccArrayList.size() != 0) {

                        object.put("emailId", ccArrayList.get(i));
                        ccArray.put(object);

                    } else {
                        object.put("", "");
                    }
                }
            obj.put("cc",ccArray);

答案 1 :(得分:1)

代码:-

ArrayList<String> ccArrayList = new ArrayList<String>();
ccArrayList.add("abc@xyz.com");
ccArrayList.add("abc@xyz.com");
ccArrayList.add("abc@xyz.com");
ccArrayList.add("abc@xyz.com");
ccArrayList.add("abc@xyz.com");

JSONArray ccArray = new JSONArray();

if(ccArrayList.size()>0){

    for(int i=0;i<ccArrayList.size();i++){

        JSONObject object = new JSONObject();
        try {
            object.put("emailId", ccArrayList.get(i));
        } catch (JSONException e) {
            e.printStackTrace();
        }
        ccArray.put(object);
    }
}

输出:-

ccArray: [{"emailId":"abc@xyz.com"},{"emailId":"abc@xyz.com"},{"emailId":"abc@xyz.com"},{"emailId":"abc@xyz.com"},{"emailId":"abc@xyz.com"}]

答案 2 :(得分:0)

那是因为您在JSONObject object = new JSONObject();循环之外声明了for,所以每次循环object都会添加一个新的JSONObject并执行数组。尝试将其保留在循环中:

JSONArray ccArray = new JSONArray();
for (int i = 0; i < ccArrayList.size(); i++) {
    JSONObject object = new JSONObject();
    object.put("emailId", ccArrayList.get(i));
    ccArray.put(object);
}