【发布时间】:2020-11-06 21:41:52
【问题描述】:
我有一个 yaml 文件,其中的数据如下所示:
dog:
animalId: dog00
animalName: Dog
animalFamily: Canidae
cat:
animalId: cat00
animalName: Cat
animalFamily: Felidae
elephant:
animalId: elpnt
animalName: Elephant
animalFamily: Elephantidae
...
(更新:我无法控制 yaml 文件)
如何将其反序列化为 Java 中的 'animal' 对象列表?
我的Animal 班级看起来像这样
public class Animal {
private String animalId;
private String animalName;
private String animalFamily;
// getters, setters, constructors
}
我正在尝试如下使用杰克逊
ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
CollectionType listType = mapper.getTypeFactory().constructCollectionType(ArrayList.class, Animal.class);
List<Animal> animals = mapper.readValue(new File("src/main/resources/animals.yaml"), listType);
但我得到了错误
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of 'java.util.ArrayList<Animal>' out of START_OBJECT token
【问题讨论】:
标签: java spring jackson yaml deserialization