IMLC.ME

如何用 Jackson 处理 yaml 数据

本文介绍了如何用 Jackson 这个非常流行的 JSON 解析库,把 yaml 数据解析成 Java 对象。
又或者反过来把 Java 对象序列化成 yaml 数据。

1. 添加依赖

首先,我们要添加相关的依赖—— jackson-dataformat-yamljackson-datatype-jsr310

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-yaml</artifactId>
    <version>2.13.0</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>2.13.0</version>
</dependency>

2. 解析 yaml 数据成 Java 对象

ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
mapper.findAndRegisterModules();
Data data = mapper.readValue(new File("/tmp/data.yaml"), Data.class);

3. 系列化 Java 对象成 yaml 数据

ObjectMapper mapper = new ObjectMapper(new YAMLFactory().disable(Feature.WRITE_DOC_START_MARKER));
mapper.writeValue(new File("/tmp/data.yaml"), order);