lesen von json Dateien in Intellij

dvdlly

Aktives Mitglied
Hallo,

Ich habe ein Verzeichnis, dass aus lauter Ordnern besteht, in denen jeweils genau eine .json Datei enthalten ist. Ich möchte diese Dateien jeweils lesen, um dann aus den erzeugten json Objekten Werte auszulesen.
- Oberverzeichnis
- Ordner1
-O1.json
- Ordner2
-O2.json
.......

Ich habe jetzt 4 verschiedene Posts dazu gelesen, aber alle sagen etwas anderes (es gibt sicherlich verschiedene Möglichkeiten, aber die Tutorien haben teilweise veraltete Libraries benutzt.
Kann mir jemand sagen, welche Library ich benutzen könnte?
Danke!
 

KonradN

Super-Moderator
Mitarbeiter
Die erste Frage wäre für mich erst einmal, was in den JSON Dateien drin steht.

Wenn da immer die Daten im gleichen Format stehen und das Format entsprechend fest gelegt ist, dann baut man das entsprechende Model und dann kann man JSON einfach in das Model parsen lassen. Dabei ist egal, ob man gson, jackson oder eine andere Alternative verwendet. Das Lesen der JSON Datei wird dann ein 2-Zeiler.

Die JSON Datei nur als JSON zu lesen um dann mit JsonObject Elementen selbst herum zu hantieren ist aus meiner Sicht einfach unübersichtlich und viel zu viel manueller Aufwand.
 

dvdlly

Aktives Mitglied
Die Dateien haben alle das selbe Format:
Java:
{
  "title": "nodeconfigtestres",
  "results": [
    {
      "test": "pts/fio-1.14.1",
      "arguments": "Type: Random Read - Engine: Linux AIO - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory",
      "units": "MB/s",
      "results": {
        "Amazon Elastic Block Store": {
          "value": "11.7",
          "all_results": "11.7:11.7:11.7"
        }
      }
    }, ....

.... soll hier bedeuten, dass das array results aus Einträgen im gleichen Format besteht.

Ich habe die gson Artikel überflogen, aber nirgends war von files die Rede, das hat ein wenig erschlagend gewirkt ehrlich gesagt... 😅
 

KonradN

Super-Moderator
Mitarbeiter
Woher Daten kommen ist auch generell egal. Entweder die Daten liegen direkt vor (Also bei JSON in Form einen Strings) oder die Daten werden gelesen (Stream oder Reader). Da findet man somit oft keine Datei.

Und wenn das Format immer gleich ist, dann kannst Du einmal die Klassen schreiben (ggf. mit Annotations, die das JSON etwas steuern) und schon ist ein Einlesen sehr einfach machbar mit Code wie z.B.:
Java:
try (FileReader reader = new FileReader(filename)) {
    Gson gson = new Gson();
    YourEntity entity = gson.fromJson(reader, YourEntity.class);
    // Hier etwas mit entity machen ...
}
 

dvdlly

Aktives Mitglied
Okay, danke euch beiden. Kann man irgendwo nachlesen, wie man die YourEntity Klasse implementieren muss? Ich weiß beim Attribut "Amazon Elastic Block Store" nicht mehr weiter - ich dachte die Attributsnamen benutzt man auch in der Implementierung, aber dieser Name enthält ja whitespaces.
 

dvdlly

Aktives Mitglied
Wenn nur ein Teil des Json ausgelesen werden muss und zwar immer der gleiche, kann man das irgendwie abkürzen? Ich brauche zb nur value aus results
 

dvdlly

Aktives Mitglied
Das öffnen einer File schlägt bereits fehl - ich führe das hier aus:

Java:
package org.workflowsim.utils;

import com.google.gson.Gson;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;

public class RuntimeData {

    public void extract_benchmarks(File file){
        try (FileReader reader = new FileReader(file.getName())) {
            Gson gson = new Gson();
            TestResult entity = gson.fromJson(reader, TestResult.class);
            System.out.println(entity);
        }
        catch (IOException e){
            throw new RuntimeException(e);
        }
    }


    public static void main(String[] args) {
        RuntimeData test = new RuntimeData();
        try {
            File f = new File("pfad zur datei(mit realpath erzeugt)/nodeconfigtestres.json");
            test.extract_benchmarks(f);
        }
        catch (Exception e){
            e.printStackTrace();
            }
        }
}

Aber kriege eine "file not found" exception. Seht ihr vielleicht woran das liegt? Ist bestimmt ein trivialer Fehler.
 

KonradN

Super-Moderator
Mitarbeiter
Du nutzt ein file.getName() - das ist nur der Name der Datei und nicht der ganze Pfad:
Returns the name of the file or directory denoted by this abstract pathname. This is just the last name in the pathname's name sequence. If the pathname's name sequence is empty, then the empty string is returned.

FileReader hat aber auch ein Konstruktor, der ein File nimmt - da ist es also nicht notwendig, sich wieder den Dateinamen geben zu lassen. Daher reicht es aus, da direkt zu sagen:
try (FileReader reader = new FileReader(file)) {
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
thE_29 Vor dem ersten Posten bitte lesen! IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
J Kombinationsproblem: netbeans, gradle, mysql, json IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
krgewb IntelliJ durchsucht .log-Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
A Einbindung von FXML-Dateien in Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
M Einzelne Java-Dateien mit Eclipse compilieren - Wie geht das? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
J Seltsames Verhalten von netbeans bezüglich fxml Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
W NetBeans Mit "externen" Dateien arbeiten-wie? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
A Eclipse Eclipse Mars Plugin Jar Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
S Eclipse Tomcat, Eclipse, Jersey und Extjs - Wohin mit den HTML-Dateien? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
darekkay Eclipse Dateien temporär aus dem Projekt entfernen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
L Eclipse Eclipse - Dateien mit HTML-Syntax-Highlighting anzeigen, die nicht die Endung .html haben? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
K Eclipse Imports Aufräumen über viele Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
T Vor dem Bilden eines Projektes soll Eclipse allesautomatisch alle Dateien speichern IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
H Java Dateien in einen runnable jar packen mit eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
K NetBeans Netbeans führt geänderte Dateien nicht aus IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
K Eclipse Strings externalisieren -- properties-Dateien in separatem Ordner? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
O Eclipse code formatter (ctrl+shift+f) funktioniert nicht mit html-dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
reibi Subversive - Dateien ausschließen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 42
M Eclipse als CVS-Client für externe Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
J class-dateien verschwunden (eclipse) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
T Eclipse löscht meine Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
S Eclipse: Nach Absturz lassen sich keine Dateien mehr öffnen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
J Eclipse erzeugt mir keine .class-Dateien mehr IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
B Eclipse --- Localies - Properties-Dateien vergleichen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
N Einbinden von externen Dateien in Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
G Zusätzliche Java-Dateien verwenden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
A wie kann ich Netbeans Form Dateien in Eclipse benutzen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
G Bitte helft mir dringend! Dateien gelöscht! IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
D netbeans Kann *.java dateien im Projects window nicht expand IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
A kstemmer java Dateien in eigenes Netbeans Projekt einbinden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
S cv neue dateien hinzufügen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
C Eclipse - Pfade zur Speicherung der Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
J Einbinden von JAR Dateien in NetBeans und Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
L Eclipse: Per Tastatur zwischen geöffneten Dateien wechseln. IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
G NetBeans | Dateien importieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
E Eclipse: Dateien zu Projekt hinzufügen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
F Dateien mit eclipse importieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
B Externe Class-Dateien ins Jar-Archiv aufnehmen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
G Neuling -> wie kann ich in eclipse in anderen Dateien suc IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
M Eigene Jar-Dateien zu Netbeans-Projekt hinzufügen? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
G Eclipse - Class-Dateien einfügen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
F Tool zur Erstellung eines Klassendiagramms aus .java-Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
S Verwendung von class-Dateien in Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
R Wie erstellt man JAR-Dateien unter JBuilder 2005 Foundation? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
K jar Dateien unter Netbeans anlegen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
G [Eclipse] Argumente, Workspace Pfad, .java Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4

Ähnliche Java Themen

Neue Themen


Oben