• Wir präsentieren Dir heute ein Stellenangebot für einen Frontend-Entwickler Angular / Java in Braunschweig. Hier geht es zur Jobanzeige

JSON-Array auf Excel-Spalten verteilen?

P

PinkMuffin

Bekanntes Mitglied
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.
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?
2020-09-22 15_52_45-Window.png

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"?
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
writableObject ist eine Objektrefernz, die du jedesmal veränderst und puttest. Es sollte reichen, wenn du jedes mal ein neues Objekt erstellst, indem du die Deklaration verschiebst.

Java:
       JSONArray writableObjectArray = new JSONArray();
        // DELETED 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");

                    JSONObject writableObject = new JSONObject(); // JETZT HIER
                    writableObject.put("Bearbeiter", bearbeitetVon);
                    writableObject.put("Zeit", stunden + " Stunde(n) " + minuten + " Minuten");
                    writableObjectArray.put(writableObject);
                }
                System.out.println();
            }

        }
       return writableObjectArray;
 
P

PinkMuffin

Bekanntes Mitglied
Dankeschön, das hat tatsächlich schon gereicht 😄
Ist immer schön, wenn sich ein Problem in wenigen Minuten lösen lässt ^^
Jetzt muss ich nur noch das mit den Spalten herausfinden.
 
Zuletzt bearbeitet:
P

PinkMuffin

Bekanntes Mitglied
Warum „missbrauchst“ du überhaupt JSONArray und JSONObject dafür?
Naja, weil ich eben dachte, genau dafür wären sie da, was wohl nicht der Fall ist, wenn du von "missbrauchen" sprichst..
Ich bekomme ja von der Webseite ohnehin JSON zurück, und weil ich es ja sowieso zu einem String mache, habe ich mit JSON weitergemacht (u.A. auch, weil es am Anfang zu funktionieren schien)
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Naja, Die JSONXy-Dinger stellen eine Schnittstelle zwischen Java und JSON dar (und JSON meint da einen String). Es sollte aber eben auch nur für die Schnittstelle da sein, also immer dann, wenn du ein Java-Objekt hast und einen JSON-String brauchst oder andersrum. Aus den JSONXy-Dingern solltest du aber schnellstmöglichst "normale" Objekte machen, und nur diese sollten dann innerhalb deines Programmes genutzt werden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R JSON Array Java Basics - Anfänger-Themen 4
I JSON Datei in Array umwandeln Java Basics - Anfänger-Themen 1
J JSON-HashMap Java Basics - Anfänger-Themen 3
P Variablen HttpResponse.getBody() wird automatisch org.json Object und kann nicht zu json.simple Object gecastet werden? Java Basics - Anfänger-Themen 7
P Ressourcen für JSON & API Informationen? Java Basics - Anfänger-Themen 1
D JSON in JSOUP ELEMENTS Java Basics - Anfänger-Themen 1
M Wie analysiert JSON eine toString-Ausgabe ? Java Basics - Anfänger-Themen 1
F POST-Request mit json - Abfrage mit Java Java Basics - Anfänger-Themen 2
R Value von einem JSON-Objekt ausgeben Java Basics - Anfänger-Themen 4
S JSON Datei schreiben und lesen Java Basics - Anfänger-Themen 3
F Kann JSON nicht deserialisieren Java Basics - Anfänger-Themen 0
E Erste Schritte Wie führe ich org.json.jar aus? Java Basics - Anfänger-Themen 6
M JSON Format Java Basics - Anfänger-Themen 5
A JSON Lesen und Schreiben. Java Basics - Anfänger-Themen 3
L Jackson JSON parsen Java Basics - Anfänger-Themen 7
A JSON versenden Java Basics - Anfänger-Themen 2
N JSON - komme nicht weiter Java Basics - Anfänger-Themen 2
Y Fehler in Json Datei Java Basics - Anfänger-Themen 4
F JSON null macht mir ein Problem Java Basics - Anfänger-Themen 3
N Suchfeld, JSON Java Basics - Anfänger-Themen 2
F JSON in dokumentierten Format als PDF Java Basics - Anfänger-Themen 3
P JSON-Konfigurationsdatei verwenden: Probleme mit Pfad Java Basics - Anfänger-Themen 1
J JSON Java Basics - Anfänger-Themen 2
F JSON von XBMC Java Basics - Anfänger-Themen 1
Traxter JSON in Java Java Basics - Anfänger-Themen 15
J String aus Json File parsen Java Basics - Anfänger-Themen 6
B Best Practice JSON Datei zerlegen Java Basics - Anfänger-Themen 1
Joew0815 Interface JSON Objekte aus Java Objekten erzeugen Java Basics - Anfänger-Themen 9
C XML und/oder JSON Java Basics - Anfänger-Themen 3
J Funktion um JSON per Post senden/emfangen Java Basics - Anfänger-Themen 3
L Input/Output JSON Objekt abrufen und ausgeben Java Basics - Anfänger-Themen 9
D JSON Java Basics - Anfänger-Themen 4
R JSON - Ausgabe als HTML mit gson Java Basics - Anfänger-Themen 6
F JSON to JAVA (und vice versa) Java Basics - Anfänger-Themen 2
M JSON Datensätze aus Website in Tabelle Java Basics - Anfänger-Themen 17
C Java, Javascript, Dojox und JSON Java Basics - Anfänger-Themen 4
S JSON String in Object umwandeln Java Basics - Anfänger-Themen 3
H Array Elemente Java Basics - Anfänger-Themen 17
J Array Actionlistener Java Basics - Anfänger-Themen 9
H Gesamtabweichung mit Array berechnen Java Basics - Anfänger-Themen 2
T Methode um Array mit for-each-Schleife auszulesen Java Basics - Anfänger-Themen 7
T Elemente aus Array zu TableView JavaFX übertragen Java Basics - Anfänger-Themen 2
I Array in umgekehrter Reihenfolge - Erklärung - Java Basics - Anfänger-Themen 3
T Zahl in Array ersetzen Java Basics - Anfänger-Themen 2
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
I Letztes, erstes Element vom Array Java Basics - Anfänger-Themen 9
J Array an Combobox übergeben Java Basics - Anfänger-Themen 5
O zweidimensionales array in eine csv-Datei Java Basics - Anfänger-Themen 1
D Doppelte For Schleife / Array Java Basics - Anfänger-Themen 3
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
H Minimum in einem Array bestimmen Java Basics - Anfänger-Themen 7
A Einmaleins 2D Array Java Basics - Anfänger-Themen 1
TimoN11 Array -> Schleife wieder von vorne durchlaufen lassen Java Basics - Anfänger-Themen 1
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
O System.out array Java Basics - Anfänger-Themen 4
G Erste Schritte Array Mittelwert Methode Programmieren Java Basics - Anfänger-Themen 5
T Variable in for Schleife ansprechen ohne Array ? Java Basics - Anfänger-Themen 25
X Zwei Dimensionales Array prüfen Java Basics - Anfänger-Themen 1
J Array Elemente werden nicht gefunden! Java Basics - Anfänger-Themen 6
K Rahmen erstellen mit mehrdimensionalem Array Java Basics - Anfänger-Themen 1
TimoN11 Array mit unterschiedlichen längen aktualisieren, dann als Methodenwert einsetzen Java Basics - Anfänger-Themen 1
G Bubblesort Array der Größe 10 Java Basics - Anfänger-Themen 1
M Initialen mit Array wiedergeben Java Basics - Anfänger-Themen 3
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
G Java 2-dimensionalen int-Array Summe Java Basics - Anfänger-Themen 2
G Array Werte addieren Java Basics - Anfänger-Themen 4
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
G Methoden Methode die aus einem Array ein Index ausgibt? Java Basics - Anfänger-Themen 2
L Array Rotation Java Basics - Anfänger-Themen 4
D Ausgabe von Array Java Basics - Anfänger-Themen 2
R String in char-Array übertragen Java Basics - Anfänger-Themen 5
D Input/Output fehlerhafter Algorithmus zum Ersetzen von Array-Werten nach logischem Schema Java Basics - Anfänger-Themen 1
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
P Datentypen Array und String Java Basics - Anfänger-Themen 2
Zeppi Array Java Basics - Anfänger-Themen 2
kazzam94 Methode soll Array von Boolean zurückgeben Java Basics - Anfänger-Themen 5
Zeppi Jagged Array Java Basics - Anfänger-Themen 6
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
U Muster in einem Array erkennen Java Basics - Anfänger-Themen 8
L Array mit Wörtern gestalten Java Basics - Anfänger-Themen 2
Gaudimagspam Nummern generieren Array Java Basics - Anfänger-Themen 4
Eule25 Methode mit Array Java Basics - Anfänger-Themen 4
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
J Array; Elemente kopieren Java Basics - Anfänger-Themen 17
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
V Array aus Klasse um vererbte Elemente erweitern Java Basics - Anfänger-Themen 3
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
T Array füllen Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Anzeige

Neue Themen


Oben