जावा में JSON के साथ कार्य: पार्सिंग और सीरियलाइज़ेशन
JSON (JavaScript Object Notation) एक हल्का डेटा विनिमय प्रारूप है जो आधुनिक वेब एप्लिकेशन, API और माइक्रोसर्विसेज़ में व्यापक रूप से उपयोग किया जाता है। जावा में, JSON के साथ कार्य करना विकास का एक अनिवार्य हिस्सा बन गया है, चाहे वह सर्वर से प्रतिक्रियाओं को पार्स करना हो, भंडारण के लिए ऑब्जेक्ट्स को सीरियलाइज़ करना हो, या सिस्टम के घटकों के बीच डेटा स्थानांतरित करना हो। इस लेख में, हम विस्तार से समझेंगे कि जावा में JSON का पार्सिंग और सीरियलाइज़ेशन कैसे करें, दो लोकप्रिय लाइब्रेरीज़: Google का Gson और Jackson का उपयोग करके।
1. JSON क्या है और जावा में इसकी आवश्यकता क्यों है?
JSON एक टेक्स्ट-आधारित प्रारूप है जो "कुंजी-मान" जोड़े और क्रमबद्ध सूचियों पर आधारित है। यह मनुष्यों और मशीनों द्वारा आसानी से पढ़ा जा सकता है, जो इसे सर्वर और क्लाइंट के बीच डेटा स्थानांतरित करने के लिए आदर्श बनाता है। जावा में, JSON का उपयोग इसके लिए किया जाता है:
- डेटा विनिमय REST API के माध्यम से (उदाहरण के लिए, सर्वर से डेटा प्राप्त करना या फॉर्म भेजना)।
- कॉन्फ़िगरेशन फ़ाइलें — कई फ्रेमवर्क एप्लिकेशन को कॉन्फ़िगर करने के लिए JSON का उपयोग करते हैं।
- ऑब्जेक्ट्स का सीरियलाइज़ेशन — Java-ऑब्जेक्ट्स को JSON स्ट्रिंग में बदलना, फ़ाइल या डेटाबेस में सहेजने के लिए।
- डीसीरियलाइज़ेशन — JSON स्ट्रिंग से Java-ऑब्जेक्ट्स को पुनर्स्थापित करना।
जावा में संस्करण 9 तक (जब मॉड्यूल java.json आया) JSON के लिए अंतर्निहित समर्थन नहीं था, इसलिए डेवलपर्स अक्सर तृतीय-पक्ष लाइब्रेरीज़ जैसे Gson और Jackson का उपयोग करते हैं। आइए दोनों पर विचार करें।
2. Gson के साथ JSON पार्सिंग
Gson Google की एक हल्की लाइब्रेरी है जो JSON को Java-ऑब्जेक्ट्स में और वापस आसानी से बदलने की अनुमति देती है। यह उपयोग में सरल है और बुनियादी परिदृश्यों के लिए अतिरिक्त एनोटेशन की आवश्यकता नहीं होती है।
2.1. Gson की स्थापना
अपने pom.xml (Maven) में निर्भरता जोड़ें:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version></dependency>यदि आप Gradle का उपयोग कर रहे हैं:
implementation 'com.google.code.gson:gson:2.10.1'2.2. JSON को Java-ऑब्जेक्ट में पार्स करना (डीसीरियलाइज़ेशन)
मान लीजिए हमारे पास उपयोगकर्ता जानकारी वाली एक JSON स्ट्रिंग है:
{ "name": "इवान पेत्रोव", "age": 30, "email": "ivan@example.com"}हम एक User क्लास बनाते हैं:
public class User { private String name; private int age; private String email;
// गेटर और सेटर (Gson के लिए अनिवार्य) 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; }}अब JSON को पार्स करें:
import com.google.gson.Gson;
public class Main { public static void main(String[] args) { String jsonString = "{\\"name\\":\\"इवान पेत्रोव\\",\\"age\\":30,\\"email\\":\\"ivan@example.com\\"}"; Gson gson = new Gson(); User user = gson.fromJson(jsonString, User.class); System.out.println("नाम: " + user.getName()); System.out.println("आयु: " + user.getAge()); }}आउटपुट:
नाम: इवान पेत्रोवआयु: 302.3. Java-ऑब्जेक्ट का JSON में सीरियलाइज़ेशन
उल्टी प्रक्रिया — ऑब्जेक्ट को JSON में बदलना:
User user = new User();user.setName("मारिया स्मिर्नोवा");user.setAge(25);user.setEmail("maria@example.com");
Gson gson = new Gson();String json = gson.toJson(user);System.out.println(json);परिणाम:
{"name":"मारिया स्