将for循环中的JSONObject添加到外部的JSONObject中

时间:2015-06-11 12:55:40

标签: java json

我正在尝试在for循环JSONobject arrivals外添加所有JSON对象stops,但我总是只在JSONObject中获得一个stops。如何将所有arrivales JSONObject放在JSONObject stops中的for循环中?

我正在使用json库org.json。

我感谢任何帮助

  JSONObject stops = new JSONObject(); 

    for (Entry<String, List<String>> entry : map.entrySet()) {
        String key = entry.getKey();
        List<String> timeEntries = entry.getValue();                        
        try {                       
        stops.put("stops_name", key);

        JSONObject arrivals = new JSONObject();
        JSONArray arrivalMoFr  = new JSONArray();

        JSONArray timeArray = new JSONArray(timeEntries);
        arrivalMoFr.put( timeArray);

        arrivals.put("mon-fri", arrivalMoFr);

        stops.put("arrival_time", arrivals);

        System.out.println(stops.toString(3));
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

1 个答案:

答案 0 :(得分:1)

声明对象外部循环并继续在循环中添加项目。每次循环运行时,您的到达和到达MoFr都会被实例化,您将获得最后一次。试试这个

   JSONObject stops = new JSONObject(); 
   JSONObject arrivals = new JSONObject();
   JSONArray arrivalMoFr  = new JSONArray();

for (Entry<String, List<String>> entry : map.entrySet()) {
    String key = entry.getKey();
    List<String> timeEntries = entry.getValue();                        
    try {                       
         stops.put("stops_name", key);



         JSONArray timeArray = new JSONArray(timeEntries);
         arrivalMoFr.put( timeArray);

         arrivals.put("mon-fri", arrivalMoFr);

         stops.put("arrival_time", arrivals);

         System.out.println(stops.toString(3));
    } catch (JSONException e) {
         e.printStackTrace();
    }
}