जावा में JSON के साथ कार्य का परिचय
\nJSON (JavaScript Object Notation) एक हल्का डेटा विनिमय प्रारूप है जो आधुनिक वेब अनुप्रयोगों, API और माइक्रोसर्विसेज़ में व्यापक रूप से उपयोग किया जाता है। जावा में, JSON के साथ कार्य विकास का एक अभिन्न अंग है: कॉन्फ़िगरेशन फ़ाइलों को पढ़ने से लेकर RESTful सेवाओं के साथ इंटरैक्ट करने तक। इस लेख में, हम व्यवहार में समझेंगे कि दो सबसे लोकप्रिय लाइब्रेरीज़: Jackson और Gson का उपयोग करके पार्सिंग (JSON को Java-ऑब्जेक्ट में बदलना) और सीरियलाइज़ेशन (Java-ऑब्जेक्ट को JSON में बदलना) कैसे करें।
\nहम वास्तविक कोड उदाहरण देखेंगे, नेस्टेड संरचनाओं को संसाधित करना सीखेंगे और सामान्य त्रुटियों का विश्लेषण करेंगे। लेख के अंत तक, आप किसी भी Java प्रोजेक्ट में आत्मविश्वास से JSON के साथ कार्य कर पाएंगे।
\n\n1. JSON के साथ कार्य के लिए मुख्य लाइब्रेरीज़
\nJackson बनाम Gson: क्या चुनें?
\nJava बाजार में JSON के साथ कार्य करने के लिए कई लाइब्रेरीज़ हैं, लेकिन उनमें से दो डी-फैक्टो मानक बन गई हैं:
\n- \n
- Jackson — अधिक प्रदर्शनशील और कार्यात्मक लाइब्रेरी। यह एनोटेशन, स्ट्रीमिंग प्रोसेसिंग और कस्टम सीरियलाइज़र का समर्थन करती है। एंटरप्राइज़ प्रोजेक्ट्स के लिए अनुशंसित। \n
- Gson — Google की सरल और हल्की लाइब्रेरी। छोटे प्रोजेक्ट्स और तेज़ प्रोटोटाइपिंग के लिए आदर्श। \n
इनमें से किसी को भी जोड़ने के लिए, pom.xml (Maven) या build.gradle (Gradle) में निर्भरता जोड़ना पर्याप्त है।
Jackson को जोड़ना (Maven)
\n<dependency>\n <groupId>com.fasterxml.jackson.core</groupId>\n <artifactId>jackson-databind</artifactId>\n <version>2.15.2</version>\n</dependency>\n\nGson को जोड़ना (Maven)
\n<dependency>\n <groupId>com.google.code.gson</groupId>\n <artifactId>gson</artifactId>\n <version>2.10.1</version>\n</dependency>\n\n2. JSON पार्सिंग: स्ट्रिंग से Java-ऑब्जेक्ट में
\nपार्सिंग JSON स्ट्रिंग को Java-ऑब्जेक्ट में बदलने की प्रक्रिया है। आइए एक सरल User वर्ग के उदाहरण पर दोनों दृष्टिकोणों पर विचार करें।
डेटा मॉडल बनाना
\npublic class User {\n private String name;\n private int age;\n private String email;\n\n // खाली कंस्ट्रक्टर अनिवार्य है!\n public User() {}\n\n // गेटर्स और सेटर्स\n public String getName() { return name; }\n public void setName(String name) { this.name = name; }\n public int getAge() { return age; }\n public void setAge(int age) { this.age = age; }\n public String getEmail() { return email; }\n public void setEmail(String email) { this.email = email; }\n}\n\nJackson के साथ पार्सिंग
\nimport com.fasterxml.jackson.databind.ObjectMapper;\n\npublic class JacksonParsingExample {\n public static void main(String[] args) throws Exception {\n String json = "{\\"name\\":\\"इवान\\",\\"age\\":30,\\"email\\":\\"ivan@example.com\\"}";\n \n ObjectMapper mapper = new ObjectMapper();\n User user = mapper.readValue(json, User.class);\n \n System.out.println("नाम: " + user.getName());\n System.out.println("आयु: " + user.getAge());\n }\n}\n\nGson के साथ पार्सिंग
\nimport com.google.gson.Gson;\n\npublic class GsonParsingExample {\n public static void main(String[] args) {\n String json = "{\\"name\\":\\"मारिया\\",\\"age\\":25,\\"email\\":\\"maria@example.com\\"}";\n \n Gson gson = new Gson();\n User user = gson.fromJson(json, User.class);\n \n System.out.println("नाम: " + user.getName());\n System.out.println("ईमेल: " + user.getEmail());\n }\n}\n\n3. सीरियलाइज़ेशन: Java-ऑब्जेक्ट से JSON में
\nसीरियलाइज़ेशन विपरीत प्रक्रिया है: हम एक Java-ऑब्जेक्ट लेते हैं और इसे JSON स्ट्रिंग में बदलते हैं। यह आवश्यक है, उदाहरण के लिए