Java:
การทำงานกับ YAML

วิธีการ:

ใน Java, คุณสามารถทำงานกับไฟล์ YAML โดยใช้ไลบรารี่ของบุคคลที่สาม เนื่องจาก Java Standard Edition ไม่รวมการสนับสนุน YAML มาให้ ไลบรารีที่ได้รับความนิยมหนึ่งคือ SnakeYAML ซึ่งอนุญาตให้ทำการแยกวิเคราะห์และสร้างข้อมูล YAML ได้อย่างง่ายดาย

การตั้งค่า SnakeYAML

เริ่มต้นด้วยการรวม SnakeYAML เข้ากับโปรเจ็กต์ของคุณ หากคุณใช้ Maven, เพิ่มการอ้างอิงต่อไปนี้ลงใน pom.xml ของคุณ:

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

การอ่าน YAML

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

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

โดยสมมติไฟล์ config.yml ดูเหมือนดังนี้:

name: Example
version: 1.0
features:
  - login
  - signup

ผลลัพธ์จะเป็น:

{name=Example, version=1.0, features=[login, signup]}

การเขียน YAML

ในการสร้าง YAML จากอ็อบเจกต์ Java, ใช้เมธอด dump ที่ SnakeYAML ให้มา:

import org.yaml.snakeyaml.Yaml;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.Map;

public class WriteYamlExample {
    public static void main(String[] args) {
        Map<String, Object> data = new LinkedHashMap<>();
        data.put("name", "Example");
        data.put("version", 1.0);
        data.put("features", Arrays.asList("login", "signup"));

        Yaml yaml = new Yaml();
        String output = yaml.dump(data);
        System.out.println(output);
    }
}

สิ่งนี้จะสร้างและพิมพ์เนื้อหา YAML ต่อไปนี้:

name: Example
version: 1.0
features:
- login
- signup

โดยการใช้ประโยชน์จาก SnakeYAML, นักพัฒนา Java สามารถรวมการทำงานแยกวิเคราะห์และสร้าง YAML เข้ากับแอพพลิเคชันของตนได้อย่างง่ายดาย โดยได้รับประโยชน์จากความสามารถอ่านได้และความเรียบง่ายของ YAML สำหรับวัตถุประสงค์ในการกำหนดค่าและการแลกเปลี่ยนข้อมูล