जावा में JSON प्रोसेसिंग: लाइब्रेरी और टूल्स का अवलोकन
JSON (JavaScript Object Notation) एक हल्का डेटा इंटरचेंज फॉर्मेट है, जिसका व्यापक रूप से आधुनिक वेब एप्लिकेशन, REST API, कॉन्फ़िगरेशन फ़ाइलों और डेटाबेस में उपयोग किया जाता है। जावा में JSON के साथ काम करने के लिए कई शक्तिशाली लाइब्रेरीज़ मौजूद हैं, जिनमें से प्रत्येक की अपनी विशेषताएं, प्रदर्शन और उपयोग में आसानी है। इस लेख में, हम मुख्य टूल्स, उनकी क्षमताओं, कोड उदाहरणों और सर्वोत्तम प्रथाओं पर चर्चा करेंगे।
1. Jackson (FasterXML Jackson)
Jackson जावा में JSON के साथ काम करने के लिए सबसे लोकप्रिय और उच्च-प्रदर्शन वाली लाइब्रेरी है। यह स्ट्रीमिंग प्रोसेसिंग (SAX-जैसी शैली) और ऑब्जेक्ट मॉडल (DOM-शैली) दोनों का समर्थन करती है। Jackson Spring Boot और कई enterprise एप्लिकेशन का हिस्सा है।
मुख्य क्षमताएं:
- Java ऑब्जेक्ट्स का JSON में और JSON से सीरियलाइज़ेशन/डीसीरियलाइज़ेशन
- बड़ी JSON फ़ाइलों की स्ट्रीमिंग प्रोसेसिंग (JsonParser, JsonGenerator)
- बारीक ट्यूनिंग के लिए एनोटेशन सपोर्ट (@JsonProperty, @JsonIgnore, @JsonFormat)
- नोड ट्री के साथ काम करना (JsonNode)
- JSON Schema और वैलिडेशन सपोर्ट
कोड उदाहरण: Jackson का बुनियादी उपयोग
import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.JsonNode;
public class JacksonExample { public static void main(String[] args) throws Exception { ObjectMapper mapper = new ObjectMapper();
// ऑब्जेक्ट को JSON में सीरियलाइज़ करना Person person = new Person("इवान", 30, "ivan@example.com"); String json = mapper.writeValueAsString(person); System.out.println(json); // {"name":"इवान","age":30,"email":"ivan@example.com"}
// JSON से ऑब्जेक्ट में डीसीरियलाइज़ेशन String jsonInput = "{\\"name\\":\\"मारिया\\",\\"age\\":25}"; Person deserialized = mapper.readValue(jsonInput, Person.class); System.out.println(deserialized.getName()); // मारिया
// नोड ट्री के साथ काम करना JsonNode root = mapper.readTree(jsonInput); System.out.println(root.get("age").asInt()); // 25 }}
class Person { private String name; private int age; private String email;
// कंस्ट्रक्टर, गेटर, सेटर (डीसीरियलाइज़ेशन के लिए अनिवार्य) public Person() {} public Person(String name, int age, String email) { this.name = name; this.age = age; this.email = email; } // गेटर और सेटर...}2. Gson (Google Gson)
Gson Google की एक लाइब्रेरी है, जो अपनी सरलता और हल्केपन के लिए जानी जाती है। यह छोटे और मध्यम आकार के प्रोजेक्ट्स के लिए आदर्श है, जहाँ अधिकतम प्रदर्शन की आवश्यकता नहीं होती है। Gson स्वचालित सीरियलाइज़ेशन/डीसीरियलाइज़ेशन के लिए रिफ्लेक्शन का उपयोग करता है।
विशेषताएं:
- न्यूनतम कॉन्फ़िगरेशन — "बॉक्स से बाहर" काम करता है
- एनोटेशन सपोर्ट (@Expose, @SerializedName)
- कस्टम एडेप्टर बनाने की क्षमता (JsonSerializer, JsonDeserializer)
- कलेक्शन, ऐरे और नेस्टेड ऑब्जेक्ट्स के साथ काम करना
कोड उदाहरण: Gson क्रियान्वयन
import com.google.gson.Gson;import com.google.gson.GsonBuilder;
public class GsonExample { public static void main(String[] args) { Gson gson = new GsonBuilder() .setPrettyPrinting() // फ़ॉर्मेटेड आउटपुट .create();
// ऑब्जेक्ट से JSON बनाना Product product = new Product("लैपटॉप", 899.99, true); String json = gson.toJson(product); System.out.println(json);
// JSON को ऑब्जेक्ट में पार्स करना String jsonInput = "{\\"name\\":\\"माउस\\",\\"price\\":25.5,\\"available\\":false}"; Product parsed = gson.fromJson(jsonInput, Product.class); System.out.println(parsed.getName()); // माउस }}
class Product {