In order to parse a YAML file using Java you will need to make use of the jackson-dataformat-yaml library,
Gradle Jackson YAML Dependency:implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.13.4'
Maven Jackson YAML Dependency:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<version>2.13.4</version>
</dependency>
Example: Parser YAML File using Java Jackson Library
YAML File:name: Alex
age: 21
course: Computers
subjects:
- Java
- Python
- GoLang
- RUST
- React
Student.java POJO Class
import java.util.Arrays;
public class Student {
private String name;
private int age;
private String course;
private String[] subjects;
public Student() {
//Default Constructor
}
public Student(String name, int age, String course, String[] subjects) {
this.name = name;
this.age = age;
this.course = course;
this.subjects = subjects;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
public String[] getSubjects() {
return subjects;
}
public void setSubjects(String[] subjects) {
this.subjects = subjects;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", course='" + course + '\'' +
", subjects=" + Arrays.toString(subjects) +
'}';
}
}
JacksonYamlParser.java
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import java.io.File;
import java.io.IOException;
public class JacksonYamlParser {
public static void main(String[] args) throws IOException {
//Step 1: The YAML FILE
File yamlFile = new File("Student.yaml");
//Step 2: ObjectMapper Class
ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory());
//Step 3: Converting YAML file to Java Object
Student student = objectMapper.readValue(yamlFile, Student.class);
//Step 4: Examples of reading from Java Pojo
System.out.println(student);
System.out.println(student.getName());
System.out.println(student.getAge());
}
}
Output:
Student{name='Alex', age=21, course='Computers', subjects=[Java, Python, GoLang, RUST, React]}
Alex
21
Facing issues? Have Questions? Post them here! I am happy to answer!
Author Info:
Rakesh (He/Him) has over 14+ years of experience in Web and Application development. He is the author of insightful How-To articles for Code2care.
Follow him on: X
You can also reach out to him via e-mail: rakesh@code2care.org
More Posts related to Java,
- Get the current timestamp in Java
- Java Stream with Multiple Filters Example
- Java SE JDBC with Prepared Statement Parameterized Select Example
- Fix: UnsupportedClassVersionError: Unsupported major.minor version 63.0
- [Fix] Java Exception with Lambda - Cannot invoke because object is null
- 7 deadly java.lang.OutOfMemoryError in Java Programming
- How to Calculate the SHA Hash Value of a File in Java
- Java JDBC Connection with Database using SSL (https) URL
- How to Add/Subtract Days to the Current Date in Java
- Create Nested Directories using Java Code
- Spring Boot: JDBCTemplate BatchUpdate Update Query Example
- What is CA FE BA BE 00 00 00 3D in Java Class Bytecode
- Save Java Object as JSON file using Jackson Library
- Adding Custom ASCII Text Banner in Spring Boot Application
- [Fix] Java: Type argument cannot be of primitive type generics
- List of New Features in Java 11 (JEPs)
- Java: How to Add two Maps with example
- Java JDBC Transition Management using PreparedStatement Examples
- Understanding and Handling NullPointerException in Java: Tips and Tricks for Effective Debugging
- Steps of working with Stored Procedures using JDBCTemplate Spring Boot
- Java 8 java.util.Function and BiFunction Examples
- The Motivation Behind Generics in Java Programming
- Get Current Local Date and Time using Java 8 DateTime API
- Java: Convert Char to ASCII
- Deep Dive: Why avoid java.util.Date and Calendar Classes
More Posts:
- [Tutorial] How to Customize Notepad++ Toolbar - NotepadPlusPlus
- How to docker remove a container when it exits - Docker
- Android SecurityException: Need BLUETOOTH ADMIN permissicacheNameAndAddresson: Neither user 10123 nor current process has android.permission.BLUETOOTH_ADMIN - Android
- Fix: A Java Exception has occurred during Java Virtual Machine Launcher - Java
- Fix: java.lang.UnsupportedOperationException Java Collections (List, Set, Map) - Java
- Center align text in TextView Android Programming - Android
- Setting up Spring Boot 3 + Maven + MySQL + JDBC Example - Java
- How to know total number of lines in a File using Java. - Java