Java Android Arraylist到JSONObject

Java Android Arraylist到JSONObject,java,android,json,arraylist,Java,Android,Json,Arraylist,我试图从ArrayList中获取值,并将其放入JSONObject。我已经编写了下面的代码,但它只将最后一个值从arraylist放到jsonobject 我正在努力实现这一目标 {"lstContacts":"array_value"},{"lstContacts":"array_value"},{"lstContacts":"array_value"} 这是我的密码 ArrayList<String> tokens; JSONObject contactsObj; .. ...

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

我正在努力实现这一目标

{"lstContacts":"array_value"},{"lstContacts":"array_value"},{"lstContacts":"array_value"}
这是我的密码

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
        }
    });
ArrayList令牌;
JSONObject contactsObj;
..
...
test.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
试一试{
for(inti=0;i
您正在重写该对象,因为您对
ArrayList
使用了
JsonObject
,解决方案是在您的情况下使用
JsonArray
contactObj

JSONArray contactsObj;

  for (int i = 0; i < tokens.size(); i++) {
                    contactsObj.put(i, tokens.get(i));
                }
JSONArray联系人sobj;
for(inti=0;i
您正在重写该对象,因为您对
ArrayList
使用了
JsonObject
,解决方案是在您的情况下使用
JsonArray
contactObj

JSONArray contactsObj;

  for (int i = 0; i < tokens.size(); i++) {
                    contactsObj.put(i, tokens.get(i));
                }
JSONArray联系人sobj;
for(inti=0;i
JSONObject contactsObj=new JSONObject();
for(inti=0;i
JSONObject contactsObj=new JSONObject();
for(inti=0;i
可能最接近你要找的。你甚至不需要为此循环

这将为您提供对象

{
    "ContactTokens":["token1","token2","token3"...]
}
可能最接近你要找的。你甚至不需要为此循环

这将为您提供对象

{
    "ContactTokens":["token1","token2","token3"...]
}
试试这个:

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
试试这个:

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

contactsObj
需要是一个
JSONArray
您发布的输出不是一个有效的JSONObject。正如您所看到的,提供的所有答案都给了您一些稍微不同的东西。这是一个直接的结果,因为我们无法从问题中看出你想要什么。你需要弄清楚你到底在找什么样的东西。当你这样做的时候,你可能已经自己解决了这个问题Git clone
contactsObj
需要是一个
JSONArray
你发布的输出不是一个有效的JSONObject。正如你所看到的,提供的所有答案都会给你一些稍微不同的东西。这是一个直接的结果,因为我们无法从问题中看出你想要什么。你需要弄清楚你到底在找什么样的东西。当你这样做的时候,你可能已经自己解决了问题Git clone一个JSONArray更好但是他想要一个JSONObject一个JSONArray更好但是他想要一个JSONObject你应该发布结果对象的样子。你应该发布结果对象的样子。