Hallo,
ich habe im Moment ein Problemchen mit folgendem Code
(writableObjectArray ist wahrscheinlich etwas unnötig umständlich, aber irgendwie hat es nur mit dem worklogArray nicht funktioniert):
Auf jeden Fall schreibt mir dieser Code ein JSON_Array, mit den Namen der Mitarbeiter und der gearbeiteten Arbeitszeit, hier beginnt der erste Fehler, nämlich wird mir immer das selbe Objekt in den Array eingefügt, obwohl es ja eigentlich jedes mal das nächste sein müsste. Im System.out.println funktioniert es auch noch, da wiederholt sich das Objekt nicht.
Dieser Code schreibt mir eine Excel-Datei, allerdings wird mein ganzes JSON-Array in eine Spalte geschrieben und ich weiß nicht, wie sich das beheben lässt
Das Ergebnis sieht dann so aus, aber ich hätte gerne den Namen in einer Spalte und die Zeiten in einer anderen, muss ich dafür dann zwei Arrays schreiben, oder wie lässt sich das realisieren?

Da sieht man auch nochmal, dass der Name und die Zeit immer gleich bleibt. Da es in der Konsolenausgabe nicht der Fall ist, ist das wohl auch ein Codefehler, aber wenn die Variablen im Print-Befehl neu vergeben werden, müssten sie es dann nicht auch im "put-Befehl"?
ich habe im Moment ein Problemchen mit folgendem Code
(writableObjectArray ist wahrscheinlich etwas unnötig umständlich, aber irgendwie hat es nur mit dem worklogArray nicht funktioniert):
Auf jeden Fall schreibt mir dieser Code ein JSON_Array, mit den Namen der Mitarbeiter und der gearbeiteten Arbeitszeit, hier beginnt der erste Fehler, nämlich wird mir immer das selbe Objekt in den Array eingefügt, obwohl es ja eigentlich jedes mal das nächste sein müsste. Im System.out.println funktioniert es auch noch, da wiederholt sich das Objekt nicht.
Java:
JSONArray writableObjectArray = new JSONArray();
JSONObject writableObject = new JSONObject();
for(int i=0; i< worklogArray.length(); i++)
{
if(worklogArray.getJSONArray(i).length()!= 0)
{
System.out.println("Worklog für Issue ");
for (int j = 0; j < worklogArray.getJSONArray(i).length(); j++)
{
int zeit = (int)worklogArray.getJSONArray(i).getJSONObject(j).get("timeSpentSeconds");
int stunden = (int) zeit / 3600;
int minuten = (int) (zeit - stunden * 3600) / 60;
String bearbeitetVon = worklogArray.getJSONArray(i).getJSONObject(j).getJSONObject("author").get("displayName").toString();
System.out.println(bearbeitetVon + " für "+stunden + " Stunde(n) " + minuten + " Minuten");
writableObject.put("Bearbeiter", bearbeitetVon);
writableObject.put("Zeit", stunden + " Stunde(n) " + minuten + " Minuten");
writableObjectArray.put(writableObject);
}
System.out.println();
}
}
return writableObjectArray;
Dieser Code schreibt mir eine Excel-Datei, allerdings wird mein ganzes JSON-Array in eine Spalte geschrieben und ich weiß nicht, wie sich das beheben lässt
Code:
public void writeFile(JSONArray worklogs) throws IOException
{
File file = new File("C:\\temp\\fromJSON.csv");
String csv = CDL.toString(worklogs);
FileUtils.writeStringToFile(file, csv, (String) null);
}
Das Ergebnis sieht dann so aus, aber ich hätte gerne den Namen in einer Spalte und die Zeiten in einer anderen, muss ich dafür dann zwei Arrays schreiben, oder wie lässt sich das realisieren?

Da sieht man auch nochmal, dass der Name und die Zeit immer gleich bleibt. Da es in der Konsolenausgabe nicht der Fall ist, ist das wohl auch ein Codefehler, aber wenn die Variablen im Print-Befehl neu vergeben werden, müssten sie es dann nicht auch im "put-Befehl"?