Java में YAML के साथ कार्य: SnakeYAML और Jackson लाइब्रेरीज़

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Java में YAML के साथ कार्य: लाइब्रेरीज़ का अवलोकन और उपयोग के उदाहरण



YAML (YAML Ain't Markup Language) एक डेटा सीरियलाइज़ेशन फ़ॉर्मेट है जिसका उपयोग अक्सर कॉन्फ़िगरेशन फ़ाइलों के लिए इसकी पठनीयता के कारण किया जाता है। Java में YAML के साथ कार्य करने के लिए दो मुख्य लाइब्रेरीज़ का उपयोग किया जाता है: SnakeYAML (हल्की, तेज़) और Jackson YAML (शक्तिशाली, एनोटेशन के समर्थन के साथ)। इस लेख में हम दोनों लाइब्रेरीज़ का विस्तार से विश्लेषण करेंगे, पढ़ने, लिखने और ऑब्जेक्ट सीरियलाइज़ेशन के उदाहरण दिखाएंगे।



1. SnakeYAML लाइब्रेरी



SnakeYAML Java में YAML के साथ कार्य करने के लिए सबसे लोकप्रिय लाइब्रेरी है। यह YAML 1.1 के पूर्ण सिंटैक्स का समर्थन करती है, जिसमें टैग, एंकर और कस्टम प्रकार शामिल हैं। मुख्य विशेषताएं:

  • YAML को Map, List या कस्टम Java ऑब्जेक्ट में पढ़ना
  • Java ऑब्जेक्ट को YAML में लिखना
  • पुनरावर्ती संरचनाओं का समर्थन
  • कम मेमोरी खपत


SnakeYAML को जोड़ना (Maven)

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


YAML फ़ाइल पढ़ना

config.yaml YAML फ़ाइल का उदाहरण देखें:

server:  host: localhost  port: 8080database:  url: jdbc:mysql://localhost:3306/mydb  user: admin  password: secret


पढ़ने के लिए Java कोड:

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

public class SnakeYamlReader { public static void main(String[] args) { Yaml yaml = new Yaml(); try (InputStream in = SnakeYamlReader.class .getClassLoader() .getResourceAsStream("config.yaml")) { Map<String, Object> data = yaml.load(in); System.out.println("सर्वर होस्ट: " + ((Map<String, Object>) data.get("server")).get("host")); } catch (Exception e) { e.printStackTrace(); } }}


YAML में लिखना

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

public class SnakeYamlWriter { public static void main(String[] args) { Map<String, Object> data = new LinkedHashMap<>(); Map<String, Object> server = new LinkedHashMap<>(); server.put("host", "127.0.0.1"); server.put("port", 9090); data.put("server", server);

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


2. Jackson YAML लाइब्रेरी



Jackson YAML, Jackson के लिए एक मॉड्यूल है जो YAML फ़ॉर्मेट का समर्थन जोड़ता है। मुख्य लाभ:

  • Jackson एनोटेशन के साथ पूर्ण एकीकरण (@JsonProperty, @JsonIgnore)
  • अतिरिक्त Map के बिना POJO ऑब्जेक्ट के साथ कार्य
  • स्ट्रीम प्रोसेसिंग के कारण उच्च प्रदर्शन
  • YAML 1.1 और आंशिक रूप से 1.2 का समर्थन


Jackson YAML को जोड़ना (Maven)

<dependency>    <groupId>com.fasterxml.jackson.dataformat</groupId>    <artifactId>jackson-dataformat-yaml</artifactId>    <version>2.16.1</version></dependency>


POJO को YAML में सीरियलाइज़ करना

कॉन्फ़िगरेशन के लिए एक क्लास बनाएं:

import com.fasterxml.jackson.annotation.JsonProperty;

public class AppConfig { @JsonProperty("server") private ServerConfig server; @JsonProperty("database") private DatabaseConfig database; // गेटर्स और सेटर्स public ServerConfig getServer() { return server; } public void setServer(ServerConfig server) { this.server = server; } public DatabaseConfig getDatabase() {

अनुशंसाएँ