我正在尝试在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();
}
}
答案 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();
}
}