JSON-Array auf Excel-Spalten verteilen?

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

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;
 

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:

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

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
I JSON in Objekt umwandeln Java Basics - Anfänger-Themen 3
J JSON mit einem JPanel Java Basics - Anfänger-Themen 3
J Objekte in JSON speichern?? Java Basics - Anfänger-Themen 1
V JSON-Objs aus JSON-Obj filtern und löschen (Manipulation ohne Kenntnis der vollst. Struktur) Java Basics - Anfänger-Themen 12
I JSON / XML Struktur mit Vererbung / Interfaces Java Basics - Anfänger-Themen 0
I API - zurückgegebener JSON String lesen und in Entity konvertieren Java Basics - Anfänger-Themen 2
I JSON - cannot deserialize from Object value Java Basics - Anfänger-Themen 16
S JSON einlesen und benutzen Java Basics - Anfänger-Themen 5
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
BATMAN_2008 Jackson adding additional fields to JSON throws java.util.concurrent.CompletionException: Java Basics - Anfänger-Themen 2
I JSON und Interface Java Basics - Anfänger-Themen 3
J Wert in einer json Datei ändern und speichern Java Basics - Anfänger-Themen 3
J Json Datei auslesen Java Basics - Anfänger-Themen 4
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
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben