JSON-Array auf Excel-Spalten verteilen?

P

PinkMuffin

Aktives 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

Aktives 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

Aktives 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
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
B Quiz Fragen in einem Array nach drücken auf einen Button abfragen Java Basics - Anfänger-Themen 0
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
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
S Auf Array aus Objekten zugreifen? Java Basics - Anfänger-Themen 1
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
A Speicherbereich von Array nicht zusammenhängend? Java Basics - Anfänger-Themen 8
S Java Array Probleme Java Basics - Anfänger-Themen 3
S Java Array Problem... Java Basics - Anfänger-Themen 2
C 2dimensionales array, Lagerverwaltung Java Basics - Anfänger-Themen 64
P Verschachtelte Array Liste Java Basics - Anfänger-Themen 2
P Performance Array und Liste Java Basics - Anfänger-Themen 13
M Array Summe bestimmen? Java Basics - Anfänger-Themen 14
parrot Array Übung Java Basics - Anfänger-Themen 25
parrot Array: Methode fügeHinzu Java Basics - Anfänger-Themen 13
parrot Array Java Basics - Anfänger-Themen 4
L 2 Dimensional Array werte überschreiben Java Basics - Anfänger-Themen 1
A char array wird überschrieben Java Basics - Anfänger-Themen 6
L Zufälliges 2d array befüllen Java Basics - Anfänger-Themen 27
L x und y Koordinaten in ein Array schreiben Java Basics - Anfänger-Themen 7
U Dreiecks-Matrix mit Array Java Basics - Anfänger-Themen 3
I Java zweidimensionales array befüllen mit for-schleife Java Basics - Anfänger-Themen 2
P Enums in Array abspeichern Java Basics - Anfänger-Themen 4
J Array Speicherplatz berechnen Java Basics - Anfänger-Themen 35
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
Z Methoden Array horizontal spiegeln Java Basics - Anfänger-Themen 19
K Array alle Werte aufsummieren und ausgeben Java Basics - Anfänger-Themen 6
J zweidimensionales Array Java Basics - Anfänger-Themen 1
A Array Elemente extrahieren ! Java Basics - Anfänger-Themen 4
M Quiz in Java programmieren mit Array Java Basics - Anfänger-Themen 8
A Array aufaddieren ! Java Basics - Anfänger-Themen 5
F Auto String mit Array Name aus Datei... oder so ähnlich Java Basics - Anfänger-Themen 4
H Ein gegebenes Int Array zu Zwei Arrays zurück geben Java Basics - Anfänger-Themen 6
J Elemente in einem 2D-Array summieren Java Basics - Anfänger-Themen 6
J String aus einem Array entfernen Java Basics - Anfänger-Themen 10
J Array differenzieren Java Basics - Anfänger-Themen 2
M Rekursive Prüfung ob ein Array sortiert ist... Java Basics - Anfänger-Themen 4
J Methoden set Methode array Java Basics - Anfänger-Themen 2
I Array übernimmt immer den letzten Input. Java Basics - Anfänger-Themen 14
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
Kirby_Sike Anzahl vorkommender Elemente im Array zählen Java Basics - Anfänger-Themen 9
A Array problem Java Basics - Anfänger-Themen 16
NeoLexx Variable für Array wird nicht korrekt übergeben Java Basics - Anfänger-Themen 45
F Integerzahl als Array halten Java Basics - Anfänger-Themen 4
1 Array nimmt falschen Wert auf! Java Basics - Anfänger-Themen 2
J Neue Werte in ein Array hinzugeben Java Basics - Anfänger-Themen 8
I Array funktioniert nicht. Java Basics - Anfänger-Themen 2
J String Array zu Map<Character, List<Character>> mit Streams Java Basics - Anfänger-Themen 1
L Wie frage ich ab, ob in einem Array, Werte doppelt vorkommen? Java Basics - Anfänger-Themen 4
C 2-Dimensionales Array in Eindimensionales Array Java Basics - Anfänger-Themen 1
H Frage zum 2d Array Java Basics - Anfänger-Themen 1
L Array sortieren Java Basics - Anfänger-Themen 4
Kirby_Sike Fehlende Int Werte aus Array mit streams finden Java Basics - Anfänger-Themen 19
Ellachen55 Wie nach häufigste Werte im Array suchen? Java Basics - Anfänger-Themen 2
V Array auf eine Zahl durchsuchen Java Basics - Anfänger-Themen 15
M Bubblesort ohne Array Java Basics - Anfänger-Themen 30
B Array Redundanz Java Basics - Anfänger-Themen 1
Kirby_Sike Array Replacing Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Anzeige

Neue Themen


Oben