如何将JSONObject的所有值添加到JSONArray

时间:2018-03-12 06:00:32

标签: android

首先,我想将所有ArrayList值添加到JsonObject然后我想将这些JSON对象添加到JsonArray我已经在第一次添加所有{{1} } ArrayList但我无法将所有JsonObject添加到JsonObject

这是我将json对象转换为json数组的代码: -

JsonArray

我只得到ArrayList的最后一个值请帮帮我我希望输出像这些

 submit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            JSONArray jsonArray = new JSONArray();

          JSONObject jsonObject = new JSONObject();

            for (int i = 0; i < records.size(); i++) {
                try {
                    jsonObject.put("sid", records.get(i).getsid());
                    jsonObject.put("name", records.get(i).getpName());


                    jsonArray.put(jsonObject));





                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
            Log.e("ATTENDANCE", jsonArray.toString() + "");
        }

    });

2 个答案:

答案 0 :(得分:6)

这是因为你只创建一个对象并将它放在for循环中,你必须为每次迭代创建新对象。

点亮你的

JSONObject jsonObject = new JSONObject();
在你的for循环中

像这样

        for (int i = 0; i < records.size(); i++) {
            try {
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("sid", records.get(i).getsid());
                jsonObject.put("name", records.get(i).getpName());
                jsonArray.put(jsonObject));

            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

答案 1 :(得分:0)

submit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            JSONArray jsonArray = new JSONArray();
            for (int i = 0; i < records.size(); i++) {
                try {
                    JSONObject jsonObject = new JSONObject();
                    jsonObject.put("sid", records.get(i).getsid());
                    jsonObject.put("name", records.get(i).getpName());
                    jsonArray.put(jsonObject));
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
            Log.e("ATTENDANCE", jsonArray.toString() + "");
        }

    });