【Java】YAML読み書き共通ツールキットと使用例

YAML は一般的に使用されるデータシリアル化形式であり、Java アプリケーションでの YAML データの読み取りと書き込みは一般的なタスクです。この記事では、SnakeYAML、Jackson Dataformat YAML、YAMLBeans という 3 つの人気のある Java ツールキットについて説明します。これらはすべて、YAML データの読み取りと書き込みのための機能を提供します。この記事では、これらのツールキットの特徴やMavenの依存関係の設定、使用例などを一つ一つ紹介していきます。最後に、この記事では、プロジェクトのニーズに適したツールキットを選択できるように、それぞれの長所と短所をまとめています。

ツールキットの紹介

1.スネークYAML

  • SnakeYAML は、YAML データの読み取りと書き込みのための強力で人気のある Java ライブラリです。
  • YAML データを Java オブジェクトに変換したり、Java オブジェクトを YAML データに変換したりできる、シンプルで柔軟な API を提供します。
  • 公式ウェブサイト:https://bitbucket.org/asomov/snakeyaml
  • Maven の依存関係
<dependency>
    <groupId>org.yaml</groupId>
    <artifactId>snakeyaml</artifactId>
    <version>1.28</version>
</dependency>

2. ジャクソンデータフォーマット YAML

  • Jackson Dataformat YAML は、YAML 形式のサポートを提供する Jackson ライブラリの拡張機能です。
  • 同じ API を使用して JSON と YAML データを処理できるようにします。
  • 公式ウェブサイト: https://github.com/FasterXML/jackson-dataformat-yaml
  • Maven の依存関係
<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-yaml</artifactId>
    <version>2.12.5</version>
</dependency>

3. YAMLBean

  • YAMLBeans は、YAML データを読み書きするための軽量の Java ライブラリです。
  • YAML データを Java オブジェクトにマップし、Java オブジェクトを YAML データに変換するための単純な API を提供します。
  • 公式サイト:https://github.com/EsotericSoftware/yamlbeans
  • Maven の依存関係
<dependency>
    <groupId>net.sourceforge.yamlbeans</groupId>
    <artifactId>yamlbeans</artifactId>
    <version>1.14</version>
</dependency>

使用例

SnakeYAML の例

// 读取 YAML 文件
try (InputStream inputStream = new FileInputStream("example.yaml")) {
    
    
    Yaml yaml = new Yaml();
    Map<String, Object> data = yaml.load(inputStream);
    // 处理 YAML 数据
    System.out.println(data);
} catch (IOException e) {
    
    
    e.printStackTrace();
}

// 写入 YAML 文件
try (Writer writer = new FileWriter("output.yaml")) {
    
    
    Yaml yaml = new Yaml();
    Map<String, Object> data = createData();
    yaml.dump(data, writer);
} catch (IOException e) {
    
    
    e.printStackTrace();
}

private static Map<String, Object> createData() {
    
    
    // 创建要写入的数据
    // ...
    return data;
}

Jackson データフォーマット YAML の例

ObjectMapper mapper = new ObjectMapper(new YAMLFactory());

// 读取 YAML 文件
try {
    
    
    Map<String, Object> data = mapper.readValue(new File("example.yaml"), Map.class);
    // 处理 YAML 数据
    System.out.println(data);
} catch (IOException e) {
    
    
    e.printStackTrace();
}

// 写入 YAML 文件
try {
    
    
    Map<String, Object> data = createData();
    mapper.writeValue(new File("output.yaml"), data);
} catch (IOException e) {
    
    
    e.printStackTrace();
}

YAMLBean の例

// 读取 YAML 文件
try (YamlReader reader = new YamlReader(new FileReader("example.yaml"))) {
    
    
    Object data = reader.read();
    // 处理 YAML 数据
    System.out.println(data);
} catch (IOException e) {
    
    
    e.printStackTrace();
}

// 写入 YAML 文件
try (YamlWriter writer = new YamlWriter(new FileWriter("output.yaml"))) {
    
    
    Map<String, Object> data = createData();
    writer.write(data);
} catch (IOException e) {
    
    
    e.printStackTrace();
}

ツールキットの長所と短所のまとめ

スネークYAML

  • 長所: 強力で柔軟な API で、広く使用されています。
  • 短所: 比較的複雑なので、より詳細な処理が必要です。

ジャクソン データ形式 YAML

  • 長所: JSON 処理ライブラリと同じ API が広く使用されており、Jackson エコシステムと統合されています。
  • 短所: 比較的複雑で、Jackson ライブラリに基づいて構成して使用する必要があります。

YAMLBeans

  • 長所:軽くて使いやすい。
  • 短所: 関数が比較的少ないため、単純な YAML データ処理に適しています。

要約する

3 つのライブラリにはそれぞれ長所と短所があり、プロジェクトのニーズと好みに応じて、適切なツールキットを選択できます。

より高い柔軟性と機能が必要な場合は、SnakeYAML または Jackson Dataformat YAML を選択できます。

ニーズが比較的単純な場合は、YAMLBeans がより軽量な選択肢になる可能性があります。

どのツールキットを選択しても、上記のサンプル コードを開始点として使用して、特定のニーズに合わせてカスタマイズおよび拡張できます。

おすすめ

転載: blog.csdn.net/m0_47406832/article/details/132427433