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?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage