YAML to POJO mapping
What's inside this article
⌄
- Jackson YAML to POJO conversion
- Jackson YAML deserialize java
- How to map YAML to Java objects
- Jackson YAML object mapping
application.yaml:
title: "my awesome conf"
childConfiguration:
message: "hello world"
pom.xml:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<version>${jackson.version}</version>
</dependency>
RootConfiguration.java:
1public class RootConfiguration {
2
3 private ChildConfiguration childConfiguration;
4
5 private String title;
6
7 public ChildConfiguration getChildConfiguration() {
8 return childConfiguration;
9 }
10
11 public void setChildConfiguration(ChildConfiguration childConfiguration) {
12 this.childConfiguration = childConfiguration;
13 }
14
15 public String getTitle() {
16 return title;
17 }
18
19 public void setTitle(String title) {
20 this.title = title;
21 }
22
23 @Override
24 public String toString() {
25 return "RootConfiguration{" +
26 "childConfiguration=" + childConfiguration +
27 '}';
28 }
29}
ChildConfiguration.java:
public class ChildConfiguration {
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@Override
public String toString() {
return "ChildConfiguration{" +
"message=" + message +
'}';
}
}
And the mapping:
public RootConfiguration getConfiguration() throws IOException {
ObjectMapper yamlMapper = new ObjectMapper(new YAMLFactory());
File configFile = new File("configuration.yml");
Preconditions.checkArgument(configFile.exists(), "configuration file doesn't exist");
return yamlMapper.readValue(configFile, RootConfiguration.class);
}
If you got MismatchedInputException:
com.fasterxml.jackson.databind.exc.MismatchedInputException
Then visit this link.