Java 使用Jackson将YAML的子树映射到POJO
我正在使用Jackson的对象映射器将YAML映射到我的Pojo。我的YAML是一个配置文件,我只想使用Jackson读取特定类型的配置 以下是我的YAML的外观:Java 使用Jackson将YAML的子树映射到POJO,java,jackson,Java,Jackson,我正在使用Jackson的对象映射器将YAML映射到我的Pojo。我的YAML是一个配置文件,我只想使用Jackson读取特定类型的配置 以下是我的YAML的外观: A: a: 1: i 2: ii 3: iii b: foo: bar 我想读取POJO中A.A下的所有数据,即1,2,3 我的POJO看起来像 public class MyPojo{ String one; String two; String three; } 你明白了。我想
A:
a:
1: i
2: ii
3: iii
b:
foo: bar
我想读取POJO中A.A
下的所有数据,即1,2,3
我的POJO看起来像
public class MyPojo{
String one;
String two;
String three;
}
你明白了。我想映射Pojo中特定节点的所有子节点
我知道我可以
readTree(“myYaml”).get(“A”).get(“A”)
并获取所有孩子的列表。但是,在Jackson中是否已经有任何方法可以将该子树转换为Pojo,就像readValue(文件、类)
?没有人帮助我,所以我帮助了自己:)
有一种方法treeToValue(TreeNode,Class)
,因此嵌套treeToValue
和readTree
有助于完成所需的工作
因此,为了读取子树A.A
,我们需要
File myYamlFile = new File(someclass.getClass().getClassLoader().getResource("myYAML").getFile())
MyPojo myPojo = jacksonObjectMapper.treeToValue(jacksonObjectMapper.readTree(myYamlFile).get("A").get("a"), MyPojo.class)