Разбор документа YAML с картой в корне с использованием snakeYaml
Я хочу прочитать документ YAML на карту пользовательских объектов (вместо карт, что по умолчанию делает snakeYaml). Итак, это:
19:
typeID: 2
limit: 300
20:
typeID: 8
limit: 100
Будет загружен на карту, которая выглядит следующим образом:
Map<Integer, Item>
где пункт является:
class Item {
private Integer typeId;
private Integer limit;
}
Я не мог найти способ сделать это с snakeYaml, и я не мог найти лучшую библиотеку для этой задачи.
В документации есть только примеры с картами / коллекциями, вложенными в другие объекты, так что вы можете сделать следующее:
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);
Но как мне определить формат карты, когда он находится в корне документа?