java - 将 Yaml 文件转换为 java 对象

标签 java yaml

我有如下所示的 Yaml 文件

Network:
   Input 1:
      - profile : "1"
      - size: 2
   Input 2:
      - profile : "1"
      - size: 3
   Input 1:
      - profile :"2"
      - size:100
   Input 2:
      - name :"N"
      - source: "test"

并使用以下依赖项将其转换为类对象

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;


ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
Tiles tiles = mapper.readValue(new File(args[0]), Tiles.class);

我的 Tiles 类如下所示

    public class Tiles {
    
      @JsonProperty
      private Network network;
      public Network getNetwork() {
        return network;
      }
      public void setNetwork(Network network) {
        this.network = network;
      }
      }
public class Network {

  public Network() {
    super();
  }

  @JsonProperty
  private List<String> input;

  public List<String> getInput() {
    return input;
  }

  public void setInput(List<String> input) {
    this.input= input;
  }

但是当使用 ObjectMapper 解析 YAML 文件时我遇到一个异常(exception),例如com.fasterxml.jackson.databind.JsonMappingException:

我想按顺序处理 YAML 文件,即使输入被不同的名称替换,我的意思是 我必须先获取输入 1,然后获取输入 2,依此类推

感谢任何帮助。

提前致谢

最佳答案

@JsonProperty与来自共振的数据一起使用,即@JsonProperty("Network")。

@JsonProperty("Network")
private List<RoadNetwork> roadnetwork;
//getter and setter

关于java - 将 Yaml 文件转换为 java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49383037/

相关文章:

java - 设计模式选择困境

java - Eclipse - 使用不同的 Java 版本编译和运行

java - 修复打开文件过多异常(我正在使用 try-catch-finally)

amazon-web-services - elasticsearch cloudformation yaml 文件不起作用

java - quartz 调度程序2.0

java - 剪刀石头布游戏

java - map 的配置属性

Kubernetes 配置编辑

ruby - 在 Ruby 1.8.7 中将带有二进制数据的 YAML 响应转换为 UTF-8

c++ - 使用 yaml-cpp 读取 map vector 失败