我想将 JSONObject 放入 JSONArray 内 for 循环

Posted

技术标签:

【中文标题】我想将 JSONObject 放入 JSONArray 内 for 循环【英文标题】:I want to put JSONObject into JSONArray inside for loop 【发布时间】:2021-05-09 12:23:43 【问题描述】:
  try 
        jsonObjectt.put("senderId", "XYZ");
        jsonObjectt.put("User_Type", usertype);
        jsonObjectt.put("Text_message", message);


           for(int i=0; i<=selectedUserIdListArray.size(); i++) 
              try  
                  jsonObject.put("Stud_ID", selectedUserIdListArray.get(i));
                  jsonObject.put("Mobile_No", selectedUserNoListArray.get(i));
                  jsonArray.put(jsonObject);
              catch (Exception e)
                  e.printStackTrace();
              
           
          jsonObjectt.put("studData",jsonArray);      


     catch (JSONException e) 
        e.printStackTrace();
    

我的期望:

   
      "senderId":"XYZ",
      "User_Type":"student",
      "Text_message":"jgz ",
      "studData": [
                    "Stud_ID":"100S1000","Mobile_No":"123456789"
                   ,
                   
                    "Stud_ID":"100S1010","Mobile_No":"321654987"
                   ]
    

我得到了什么:

   
      "senderId":"XYZ",
      "User_Type":"student",
      "Text_message":"jgz ",
      "studData": [
                    "Stud_ID":"100S1000","Mobile_No":"123456789"
                   ,
                   
                    "Stud_ID":"100S1000","Mobile_No":"123456789"
                   ]
    

【问题讨论】:

@patil 你为什么要那个?直接将你的 json 转换成 pojo,让你的生活变得轻松。 【参考方案1】:

您可以尝试使用 jsonArray.add 代替 jsonArray.put

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

import java.util.ArrayList;
import java.util.List;

public class JSONPractise 
    public static void main(String[] args) 
        JSONObject jsonObjectt = new JSONObject();
        List<Student> selectedUserIdListArray = new ArrayList<>();
        selectedUserIdListArray.add(new Student("100S1000", "1234567890"));
        selectedUserIdListArray.add(new Student("100S1010", "3216549870"));
        JSONArray jsonArray = new JSONArray();
        try 
            jsonObjectt.put("senderId", "XYZ");
            jsonObjectt.put("User_Type", "student");
            jsonObjectt.put("Text_message", "xzf");


            for(int i=0; i<selectedUserIdListArray.size(); i++) 
                try 
                    JSONObject jsonObject = new JSONObject();
                    jsonObject.put("Stud_ID", selectedUserIdListArray.get(i).getId());
                    jsonObject.put("Mobile_No", selectedUserIdListArray.get(i).getPhoneNumber());
                    jsonArray.add(jsonObject);
                catch (Exception e)
                    e.printStackTrace();
                
            
            jsonObjectt.put("studData",jsonArray);

            System.out.println(jsonObjectt);
        catch (Exception e)
        
            System.out.println(e);
        
    

输出:


   "senderId":"XYZ",
   "studData":[
      
         "Mobile_No":"1234567890",
         "Stud_ID":"100S1000"
      ,
      
         "Mobile_No":"3216549870",
         "Stud_ID":"100S1010"
      
   ],
   "Text_message":"xzf",
   "User_Type":"student"

【讨论】:

以上是关于我想将 JSONObject 放入 JSONArray 内 for 循环的主要内容,如果未能解决你的问题,请参考以下文章

意图值(json 数组)到 Listview

我想将数组的内容放入 h3 元素中,然后将其放入其容器中

JSONObject 到文档

将 HashMap<String, object> 放入 jsonobject

如何遍历保存到 JSONObject 的数据数组并将其放入 JSONArray?

我想将 Latlng 值放入 Firebase 的 Google 地图中,但出现错误