Jackson Java: पूर्ण गाइड उदाहरणों के साथ

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

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

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

Jackson क्या है और इसकी आवश्यकता क्यों है?

Jackson एक शक्तिशाली और हाई-परफॉर्मेंस Java लाइब्रेरी है, जो JSON (JavaScript Object Notation) फॉर्मेट में डेटा प्रोसेस करने के लिए बनाई गई है। आधुनिक Java एप्लिकेशन डेवलपमेंट में, JSON क्लाइंट और सर्वर के बीच डेटा एक्सचेंज का डी-फैक्टो स्टैंडर्ड बन गया है, खासकर RESTful वेब सर्विसेज और माइक्रोसर्विस आर्किटेक्चर में। Jackson तीन मुख्य कार्य हल करता है:

  • सीरियलाइज़ेशन (Serialization) — Java ऑब्जेक्ट्स को JSON स्ट्रिंग में बदलना।
  • डीसीरियलाइज़ेशन (Deserialization) — JSON स्ट्रिंग को वापस Java ऑब्जेक्ट्स में बदलना।
  • ट्री मॉडल (Tree Model) — JSON को नोड्स (JsonNode) की ट्री-जैसी संरचना के रूप में मैनेज करना।

यह लाइब्रेरी अपनी तेज़ गति, लचीली कॉन्फ़िगरेशन और एनोटेशन की व्यापक सपोर्ट के लिए जानी जाती है। Jackson का उपयोग Spring Framework (spring-web मॉड्यूल के ज़रिए), Play Framework और कई अन्य एंटरप्राइज़ सॉल्यूशंस में होता है। आधुनिक Java डेवलपमेंट में Jackson के बिना काम करना मुश्किल है, जहाँ बाहरी API के साथ इंटीग्रेशन, कॉन्फ़िगरेशन फ़ाइलों के साथ काम या NoSQL डेटाबेस में डेटा स्टोर करना ज़रूरी होता है।

Jackson की स्थापना (Installation)

Jackson कई मॉड्यूल्स से मिलकर बना है। मुख्य मॉड्यूल्स इस प्रकार हैं:

  • jackson-core — लाइब्रेरी का कोर (स्ट्रीमिंग पार्सर/जनरेटर)।
  • jackson-databind — सीरियलाइज़ेशन/डीसीरियलाइज़ेशन के लिए मॉड्यूल (core और annotations पर निर्भर करता है)।
  • jackson-annotations — मैपिंग कॉन्फ़िगर करने के लिए एनोटेशन।

ज़्यादातर कामों के लिए केवल jackson-databind जोड़ना काफी है, क्योंकि यह बाकी मॉड्यूल्स को अपने आप ला देता है।

Maven के ज़रिए स्थापना

pom.xml फ़ाइल में यह कोड जोड़ें:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.17.1</version> <!-- Maven Central पर नवीनतम वर्ज़न देखें -->
</dependency>

Gradle के ज़रिए स्थापना

build.gradle फ़ाइल में यह कोड जोड़ें:

implementation 'com.fasterxml.jackson.core:jackson-databind:2.17.1'

pip के ज़रिए स्थापना? नहीं, यह Java है!

महत्वपूर्ण नोट: Jackson एक Java लाइब्रेरी है, Python के लिए नहीं। Python में इसका समकक्ष स्टैंडर्ड json मॉड्यूल या simplejson लाइब्रेरी है। Java में स्थापना डिपेंडेंसी मैनेजमेंट सिस्टम (Maven, Gradle) के ज़रिए या आधिकारिक साइट से JAR फ़ाइलें डाउनलोड करके की जाती है।

त्वरित शुरुआत: पहला उदाहरण

चलिए एक सरल Java क्लास बनाते हैं और इसे JSON में बदलना और वापस लाना सीखते हैं।

चरण 1: एक मॉडल क्लास बनाएँ

import com.fasterxml.jackson.annotation.JsonProperty;

public class User {
    private String name;
    private int age;
    private String email;

    // डिफ़ॉल्ट कंस्ट्रक्टर ज़रूरी है!
    public User() {}

    public User(String name, int age, String email) {
        this.name = name;
        this.age = age;
        this.email = email;
    }

    // Jackson के लिए गेटर और सेटर ज़रूरी हैं
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }

    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }

    public String getEmail() { return email; }
    public void setEmail(String email) { this.email = email; }
}

चरण 2: सीरियलाइज़ेशन और डीसीरियलाइज़ेशन

import com.fasterxml.jackson.databind.ObjectMapper;

public class Main {
    public static void main(String[] args) throws Exception {
        // लाइब्रेरी का मुख्य ऑब्जेक्ट बनाएँ
        ObjectMapper mapper = new ObjectMapper();

        // एक Java ऑब्जेक्ट बनाएँ
        User user = new User("राहुल शर्मा", 28, "rahul@example.com");

        // 1. सीरियलाइज़ेशन: Java ऑब्जेक्ट -> JSON स्ट्रिंग
        String jsonString = mapper.writeValueAsString(user);
        System.out.println("JSON: " + jsonString);
        // आउटपुट: {"name":"राहुल शर्मा","age":28,"email":"rahul@example.com"}

        // 2. डीसीरियलाइज़ेशन: JSON स्ट्रिंग -> Java ऑब्जेक्ट
        User deserializedUser = mapper.readValue(jsonString, User.class);
        System.out.println("नाम: " + deserializedUser.getName());
        System.out.println("उम्र: " + deserializedUser.getAge());
    }
}

अनुशंसाएँ