Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Jackson将YAML的子树映射到POJO_Java_Jackson - Fatal编程技术网

Java 使用Jackson将YAML的子树映射到POJO

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; } 你明白了。我想

我正在使用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;
}
你明白了。我想映射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)