JSON से Java क्लास (POJO या Record)
JSON से getter/setter वाले Java POJO या Java 16 record बनाएँ, असामान्य कुंजियों के लिए Jackson @JsonProperty और नेस्टेड static क्लास के साथ। मुफ़्त।
नेस्टेड टाइप static nested क्लास बनते हैं। जो कुंजियाँ मान्य Java नाम नहीं हैं उन्हें @JsonProperty (Jackson) मिलता है।
पूरी तरह आपके ब्राउज़र में चलता है। आपका डेटा कभी अपलोड नहीं होता।
संबंधित टूल्स
सभी देखेंJSON से Java क्लास क्या है?
JSON नमूने से Java मॉडल क्लास बनाएँ, या तो private फ़ील्ड, getter और setter वाले क्लासिक POJO के रूप में या कॉम्पैक्ट Java record के रूप में। नेस्टेड ऑब्जेक्ट रूट टाइप के भीतर static नेस्टेड क्लास (या नेस्टेड record) बनते हैं।
JSON से Java क्लास का उपयोग कैसे करें
- JSON इनपुट में JSON नमूना पेस्ट करें (या उदाहरण लोड करें / फ़ाइल खोलें दबाएँ)।
- रूट टाइप का नाम तय करें (डिफ़ॉल्ट
Root)। - आउटपुट शैली चुनें: getter/setter वाली क्लास (Jackson) या Record क्लास (Java 16+)।
- बना हुआ Java कोड कॉपी करें या फ़ाइल के रूप में डाउनलोड करें।
उदाहरण
{"id":1,"name":"A","tags":["x"]} import java.util.List;
public class Root {
private long id;
private String name;
private List<String> tags;
public long getId() { return id; }
public void setId(long id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public List<String> getTags() { return tags; }
public void setTags(List<String> tags) { this.tags = tags; }
} JSON से Java क्लास का उपयोग कब करें
Spring, Jackson या Gson कोड के लिए DTO का ढाँचा बनाने के लिए इसका उपयोग करें। तारीखों (LocalDate, Instant) और enum जैसे टाइप हाथ से बदलें, और अगर आपका कोडबेस पसंद करे तो नेस्टेड क्लास को अलग फ़ाइलों में बाँटें।
JSON से Java क्लास कैसे काम करता है
नमूने को रिकर्सिव ढंग से पढ़ा जाता है और हर स्थान उन टाइप को इकट्ठा करता है जो उसने देखे। ऑब्जेक्ट के ऐरे एक टाइप में मिला दिए जाते हैं: जो कुंजी कुछ एलिमेंट में नहीं है वह वैकल्पिक बन जाती है, जो कुंजी कहीं null है वह nullable बन जाती है, दशमलव के साथ मिले पूर्णांक फ़्लोटिंग-पॉइंट टाइप बनते हैं, और बाकी हर मिश्रित टाइप डायनैमिक टाइप पर चला जाता है। नेस्टेड ऑब्जेक्ट अपने नामित टाइप बनते हैं (कुंजी का PascalCase, ऐरे कुंजियों का एकवचन: orders → Order), और नाम टकराने पर अंक जुड़ते हैं। Java आउटपुट ज़रूरी मानों के लिए long/double/boolean प्रिमिटिव और nullable या वैकल्पिक मानों के लिए boxed Long/Double/Boolean, String, ऐरे के लिए List<T> और डायनैमिक मानों के लिए Object इस्तेमाल करता है। फ़ील्ड नाम camelCase होते हैं; जब वे JSON कुंजी से अलग हों तो Jackson @JsonProperty("key") एनोटेशन जुड़ता है और import अपने आप शामिल होता है।
सामान्य उपयोग मामले
- Spring Boot REST क्लाइंट के लिए DTO बनाना
- Kafka कंज्यूमर के लिए JSON संदेश का मॉडल बनाना
- अपरिवर्तनीय कॉन्फ़िगरेशन के लिए record बनाना
- Java में टेस्ट फ़िक्स्चर शुरू करना
अक्सर पूछे जाने वाले प्रश्न
क्या मुझे Jackson चाहिए?
सिर्फ़ तब जब कुछ कुंजियाँ मान्य Java नाम न हों; तब @JsonProperty इस्तेमाल होता है। वरना क्लास सादा Java हैं और Gson के साथ भी चलती हैं।
int की जगह long क्यों?
JSON संख्याएँ int की सीमा पार कर सकती हैं (ID, टाइमस्टैम्प)। long ओवरफ़्लो से बचाता है; अगर आपको पता है कि मान छोटे हैं तो int कर लें।
क्या record Jackson के साथ चलते हैं?
हाँ, Jackson 2.12+ Java record को उनके canonical कंस्ट्रक्टर से डिसीरियलाइज़ करता है।