Hallo,
weiß zufällig jemand von euch, wie man eine (generische) Yaml-Datei in Java einlesen und iterieren kann?
Hier ist mein Versuch:
Fehler:
Exception in thread "main" java.lang.ClassCastException: class java.util.LinkedHashMap cannot be cast to class Main$Items (java.util.LinkedHashMap is in module java.base of loader 'bootstrap'; Main$Items is in unnamed module of loader 'app')
at Main.prettify(Main.java:20)
Ich hatte auch nach Beispielen gesucht, fand aber nur veralteten Käse.
Nach Dokumentation (https://bitbucket.org/snakeyaml/snakeyaml/wiki/Documentation) sollte dies eigentlich mit SnakeYaml möglich sein.
Oder gäbe es auch noch eine andere Parser Library?
Vielen Dank für jede Anregung
weiß zufällig jemand von euch, wie man eine (generische) Yaml-Datei in Java einlesen und iterieren kann?
Hier ist mein Versuch:
Java:
import org.yaml.snakeyaml.Yaml;
import java.io.File;
import java.io.FileReader;
import java.util.LinkedHashMap;
import java.util.Map;
public class Main {
public static class Items {
public LinkedHashMap<String, Object> map;
}
public static void main(String[] args) throws Exception {
prettify(new File("test.yml"));
}
public static void prettify(File file) throws Exception {
Items load = null;
try (FileReader fr = new FileReader(file)) {
load = new Yaml().load(fr);
}
assert load != null;
iterate(load, 0);
}
public static void iterate(Items items, int depth) {
for (Map.Entry<String, Object> e : items.map.entrySet()) {
if (e.getValue() instanceof Items) {
iterate((Items) e.getValue(), depth + 1);
} else {
System.out.println(" ".repeat(depth) + e);
}
}
}
}
Fehler:
Exception in thread "main" java.lang.ClassCastException: class java.util.LinkedHashMap cannot be cast to class Main$Items (java.util.LinkedHashMap is in module java.base of loader 'bootstrap'; Main$Items is in unnamed module of loader 'app')
at Main.prettify(Main.java:20)
Ich hatte auch nach Beispielen gesucht, fand aber nur veralteten Käse.
Nach Dokumentation (https://bitbucket.org/snakeyaml/snakeyaml/wiki/Documentation) sollte dies eigentlich mit SnakeYaml möglich sein.
Oder gäbe es auch noch eine andere Parser Library?
Vielen Dank für jede Anregung