我目前正在尝试将 YAML 文件解析为输入/配置以运行某些测试。问题是:使用杰克逊,无论我为它设计的结构如何,嵌套数据似乎都不适合这个类,几乎每次我得到这样的东西:
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList` out of START_OBJECT token
我打算使用与 XPath 类似的方法简单地“搜索” YAML 文件中的数据,而不用担心映射对象和有限级别的嵌套。
这是示例类:
public class YAMLInput {
private ArrayList<SomeContainer> containers;
//getter and setters
private class SomeContainer {
private String name;
private String path;
private ArrayList<Integer> intList;
private ArrayList<String> strList;
private ArrayList<SomeObject> someObjList;
private class SomeObject {
private String objectName;
private ArrayList<String> strList;
}
}
}
Yaml 输入:
container:
name: Cont1
path: /storage/outputFolder
intList:
- 100
- 200
- 300
strList:
- strFirst
- strSecond
- strThird
someObjList:
obj1:
objName: strname
strList:
- 100
- 200
- 300
obj2:
# (...)
这个想法是为YAMLInput类构建一个构造函数:
public YAMLInput( SearchableYAMLData data) {
for(SearchableYAMLData container : data.getList("container")){
this.containers.add( new SomeContainer());
this.containers.get(0) = container.get("name");
//...
}
}
最接近这个假设SearchableYAMLData类的可用工具是什么?
狐的传说
人到中年有点甜
相关分类