Java:
Работа с YAML

Как это сделать:

Чтобы работать с YAML в Java, давайте использовать snakeyaml, популярную библиотеку.

Сначала добавьте зависимость в ваш pom.xml:

<dependency>
    <groupId>org.yaml</groupId>
    <artifactId>snakeyaml</artifactId>
    <version>1.29</version>
</dependency>

Теперь прочитаем файл YAML:

import org.yaml.snakeyaml.Yaml;
import java.io.InputStream;
import java.util.Map;

public class YamlReader {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        try (InputStream in = YamlReader.class
            .getClassLoader()
            .getResourceAsStream("config.yaml")) {
            
            Map<String, Object> data = yaml.load(in);
            System.out.println(data);
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Предположим, config.yaml выглядит так:

version: '1.0'
services:
  webapp:
    build: .
    ports:
      - "5000:5000"

Вывод будет представлением Map вашего YAML:

{version=1.0, services={webapp={build=., ports=[5000:5000]}}}

Теперь давайте запишем YAML:

import org.yaml.snakeyaml.Yaml;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class YamlWriter {
    public static void main(String[] args) {
        Yaml yaml = new Yaml();
        Map<String, Object> data = new HashMap<>();
        
        data.put("name", "myapp");
        data.put("version", "2.0");
        
        try (FileWriter writer = new FileWriter("output.yaml")) {
            yaml.dump(data, writer);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Проверьте output.yaml, чтобы увидеть новое содержимое YAML:

name: myapp
version: '2.0'

Подробнее

YAML появился в начале 2000-х как альтернатива XML для более простого структурирования данных. Несмотря на то что подъем JSON затмил его для коммуникации API, дружественность к человеку YAML делает его популярным для конфигураций. Те же данные, но JSON и TOML являются альтернативами YAML в зависимости от случаев использования. Одна оговорка YAML: для отступов разрешены только пробелы, табуляция не допускается.

Смотрите также

Изучите дальше с помощью этих ресурсов: