对于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"}]
答案 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);
}