Android Arraylist到JSONObject

Naz*_*141 1 java android json arraylist

我试图从中取出值ArrayList并放入JSONObject.我编写了下面的代码,但它只将arraylist中的最后一个值放到jsonobject中

我正在努力实现这一目标.

{"lstContacts":"array_value"},{"lstContacts":"array_value"},{"lstContacts":"array_value"}
Run Code Online (Sandbox Code Playgroud)

这是我的代码

ArrayList<String> tokens;
JSONObject contactsObj;
..
...
test.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                for (int i = 0; i < tokens.size(); i++) {
                    contactsObj.put("ContactToken", tokens.get(i));
                }

            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            String jsonStr = contactsObj.toString();
            Log.e("CONTACTS", jsonStr); // adds only last array to json object
        }
    });
Run Code Online (Sandbox Code Playgroud)

Rod*_*ues 7

试试这个:

JSONObject contactsObj = new JSONObject();

JSONArray contactsArray = new JSONArray();

try {
    for (int i = 0; i < tokens.size(); i++) {
        JSONObject contact = new JSONObject();
        contact.put("ContactToken", tokens.get(i));
        contactsArray.put(i, contact);
    }

    contactsObj.put("contacts", contactsArray);
} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
String jsonStr = contactsObj.toString();
Log.e("CONTACTS", jsonStr); // adds only last array to json object
Run Code Online (Sandbox Code Playgroud)

结果jsonStr将如下所示:

{  
   "contacts":[  
      {  
         "ContactToken":"someToken"
      },
      {  
         "ContactToken":"someToken"
      },
      {  
         "ContactToken":"someToken"
      },
      {  
         "ContactToken":"someToken"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)