Skip to main content
CheckTown
कन्वर्टर

JSON को Java क्लास में कैसे बदलें

प्रकाशित 5 मिनट का पठन
इस लेख में

JSON से Java क्लासेस क्यों जनरेट करें

Java का शब्दबहुल क्लास सिंटैक्स JSON डिसीरियलाइज़ेशन के लिए POJOs लिखने को बैकएंड डेवलपमेंट के सबसे उबाऊ कामों में से एक बना देता है। नेस्टेड ऑब्जेक्ट्स वाले एक अकेले API रिस्पॉन्स के लिए ही दर्जनों लाइनों के getters, setters और कंस्ट्रक्टर की ज़रूरत पड़ सकती है। हमारा JSON to Java कन्वर्टर JSON संरचनाओं का विश्लेषण करके प्रोडक्शन-रेडी Java क्लासेस तुरंत जनरेट कर देता है और इस बॉयलरप्लेट को ख़त्म कर देता है।

चाहे आप REST API क्लाइंट बना रहे हों, webhook payloads प्रोसेस कर रहे हों, या थर्ड-पार्टी सेवाओं के साथ इंटीग्रेट कर रहे हों, सैंपल JSON डेटा से Java क्लासेस जनरेट करना यह सुनिश्चित करता है कि आपके मॉडल असल डेटा संरचना से मेल खाएँ। इससे ग़लत फ़ील्ड नामों, ग़लत टाइप्स और छूटी हुई नेस्टेड क्लासेस से होने वाले बग कम होते हैं, जो हाथ से मॉडल लिखते समय आम हैं।

आउटपुट मोड

आपके प्रोजेक्ट की ज़रूरतों और Java वर्ज़न से मेल खाने के लिए कन्वर्टर कई Java क्लास स्टाइल सपोर्ट करता है।

  • POJO — private फ़ील्ड्स, getters, setters और एक no-arg कंस्ट्रक्टर वाला पारंपरिक Plain Old Java Object, जो सभी Java वर्ज़न और सीरियलाइज़ेशन फ़्रेमवर्क के अनुकूल होता है
  • Lombok @Data — ऐसी एनोटेटेड क्लासेस जो Lombok के @Data एनोटेशन का इस्तेमाल करके getters, setters, equals, hashCode और toString अपने-आप जनरेट करती हैं, जिससे कोड की मात्रा नाटकीय रूप से घट जाती है
  • Java Records — Java 14+ record क्लासेस जो एक ही लाइन के डिक्लेरेशन में automatic accessor मेथड, कंस्ट्रक्टर, equals, hashCode और toString के साथ immutable डेटा कैरियर प्रदान करती हैं

निःशुल्क आज़माएँ — कोई साइनअप आवश्यक नहीं

JSON को Java में बदलें →

एनोटेशन विकल्प

सही फ़ील्ड मैपिंग सुनिश्चित करने के लिए कन्वर्टर लोकप्रिय Java JSON लाइब्रेरियों के लिए एनोटेशन जनरेट करता है।

  • Jackson @JsonProperty — मूल JSON key नाम के साथ @JsonProperty एनोटेशन जोड़ता है, जिससे Java फ़ील्ड नाम JSON keys से अलग होने पर भी सही डिसीरियलाइज़ेशन सुनिश्चित होता है
  • कस्टम नामकरण — जब JSON में snake_case या kebab-case keys होती हैं, तो कन्वर्टर camelCase Java फ़ील्ड नाम जनरेट करता है और मूल key फ़ॉर्मैट से @JsonProperty मैपिंग करता है
  • नेस्टेड क्लासेस — नेस्टेड JSON ऑब्जेक्ट्स के लिए सही ढंग से संरचित inner क्लासेस या अलग top-level क्लासेस जनरेट करता है, साथ में उपयुक्त import स्टेटमेंट और टाइप रेफ़रेंस के साथ

अक्सर पूछे जाने वाले सवाल

जनरेट किए गए कोड में मुझे List इस्तेमाल करना चाहिए या ArrayList?

कन्वर्टर फ़ील्ड टाइप्स ArrayList इम्प्लीमेंटेशन के बजाय List इंटरफ़ेस का इस्तेमाल करके जनरेट करता है। यह Java की सर्वोत्तम प्रथा का पालन करता है — इम्प्लीमेंटेशन के बजाय इंटरफ़ेस के लिए प्रोग्रामिंग। आप अपने कंस्ट्रक्टर में इन फ़ील्ड्स को ArrayList, LinkedList या किसी भी अन्य List इम्प्लीमेंटेशन से इनिशियलाइज़ कर सकते हैं।

कन्वर्टर primitive और wrapper टाइप्स के बीच चुनाव कैसे करता है?

डिफ़ॉल्ट रूप से कन्वर्टर primitives (int, double, boolean) के बजाय wrapper टाइप्स (Integer, Double, Boolean) इस्तेमाल करता है। Wrapper टाइप्स JSON की null वैल्यू को दर्शा सकते हैं, जो वैकल्पिक फ़ील्ड्स के लिए ज़रूरी है। Nullable JSON फ़ील्ड्स के लिए primitives इस्तेमाल करने से null चुपचाप 0 या false में बदल जाता, जिससे डेटा की समस्याएँ छिप जातीं।

क्या मैं Jackson के बजाय Gson के अनुकूल क्लासेस जनरेट कर सकता हूँ?

जनरेट किया गया POJO आउटपुट बिना किसी बदलाव के Jackson और Gson दोनों के साथ काम करता है। अगर आपको @SerializedName जैसे Gson-विशिष्ट एनोटेशन चाहिए, तो आप आसानी से @JsonProperty को @SerializedName से बदल सकते हैं — फ़ील्ड मैपिंग पैटर्न एक जैसा ही रहता है। जनरेट किए गए फ़ील्ड नाम सीरियलाइज़ेशन लाइब्रेरी चाहे जो भी हो, Java परंपराओं का पालन करते हैं।

संबंधित टूल