Parsing eines YAML-Dokuments mit einer Map im Stammverzeichnis mithilfe von snakeYaml
Ich möchte ein YAML-Dokument in eine Karte mit benutzerdefinierten Objekten einlesen (anstelle von Karten, die snakeYaml standardmäßig verwendet). Also das
19:
typeID: 2
limit: 300
20:
typeID: 8
limit: 100
Würde auf eine Karte geladen, die so aussieht:
Map<Integer, Item>
where Gegenstand ist:
class Item {
private Integer typeId;
private Integer limit;
}
Ich konnte mit snakeYaml keinen Weg finden, dies zu tun, und ich konnte auch keine bessere Bibliothek für die Aufgabe finden.
Die Dokumentation enthält nur Beispiele mit Karten / Sammlungen, die in anderen Objekten verschachtelt sind, sodass Sie folgende Aktionen ausführen können:
TypeDescription typeDescription = new TypeDescription(ClassContainingAMap.class);
typeDescription.putMapPropertyType("propertyNameOfNestedMap", Integer.class, Item.class);
Constructor constructor = new Constructor(typeDescription);
Yaml yaml = new Yaml(constructor);
/* creating an input stream (is) */
ClassContainingAMap obj = (ClassContainingAMap) yaml.load(is);
Aber wie definiere ich das Map-Format, wenn es sich im Stammverzeichnis des Dokuments befindet?