Analisando um documento YAML com um mapa na raiz usando snakeYaml
Quero ler um documento YAML em um mapa de objetos personalizados (em vez de mapas, o que snakeYaml faz por padrão). Então, é isso:
19:
typeID: 2
limit: 300
20:
typeID: 8
limit: 100
Seria carregado em um mapa parecido com este:
Map<Integer, Item>
onde Item é:
class Item {
private Integer typeId;
private Integer limit;
}
Não consegui encontrar uma maneira de fazer isso com o snakeYaml e também não consegui encontrar uma biblioteca melhor para a tarefa.
A documentação possui apenas exemplos com mapas / coleções aninhados dentro de outros objetos, para que você possa fazer o seguinte:
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);
Mas como definir o formato do mapa quando ele está na raiz do documento?