[英]Parse YAML file to Java classes
我有一个 YAML 文件,我需要做的是创建适当的类,以便我可以使用以下代码解析它:
InputStream inputStream = null;
try {
inputStream = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Yaml yaml = new Yaml();
Root myYaml = yaml.loadAs(inputStream, Root.class);
这是 YAML 文件:
project:
name: My Software Project
description: The description of the project
suites:
- BackEndTests:
- Test1:
enabled: true
command: echo Test
- Test2:
enabled: true
command: echo Test 2
description: This test does something too
- UITests:
- Test3:
enabled: true
command: echo Test 3
description: Hello world
- Test4:
enabled: false
command: echo Test 4
我创建了以下类:
public class Root {
private Project project;
private List<Suite> suites;
}
// setters and getters
public class Project {
private String name;
private String description;
}
// setters and getters
public class Suite {
private String name;
private List<Test> tests;
}
// setters and getters
public class Test {
private boolean enabled;
private String command;
private String description;
}
// setters and getters
我的应用程序收到此错误消息,使用 Spring 构建启动:单击此处查看完整的错误消息
我总是为每个 class 包含 setter、getter 甚至构造函数。 有人可以建议如何构造类,以便我可以解析 YAML 文件而不会出现任何错误? 另外,如果我在类中添加额外的字段(除了 yaml 中列出的这些),是否可以,因为我需要稍后将它们用于其他目的? 一个例子:
public class Project {
private Integer id; // adding field that is not contained in the yaml
private String name;
private String description;
}
提前致谢!
如果你想使用 YAML 格式,那么正确的格式是
project:
description: The description of the project
name: My Software Project
suites:
- name: BackEndTests
tests:
- command: echo Test
enabled: true
name: Test1
- command: echo Test 2
description: This test does something too
enabled: true
name: Test 2
- name: UITests
tests:
- command: echo Test 3
description: Hello world
enabled: true
name: Test3
- command: echo Test 4
enabled: false
name: Test4
课程将是:
public class Root {
private Project project;
private List<Suite> suites;
}
// setters and getters
public class Project {
private String name;
private String description;
}
// setters and getters
public class Suite {
private String name;
private List<Test> tests;
}
// setters and getters
public class Test {
private String name;
private boolean enabled;
private String command;
private String description;
}
// setters and getters
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.