Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

हम जावा में @JsonAnyGetter और @JsonAnySetter एनोटेशन कब कॉल कर सकते हैं?


@JsonAnyGetter टिप्पणी एक मानचित्र . का उपयोग करने में सक्षम बनाता है एक कंटेनर . के रूप में उन गुणों के लिए जिन्हें हम JSON और @JsonAnySetter . में क्रमबद्ध करना चाहते हैं टिप्पणी जैक्सन को सभी गैर-मान्यता प्राप्त फ़ील्ड . के लिए एक ही सेटर विधि को कॉल करने का निर्देश देता है JSON ऑब्जेक्ट में, जिसका अर्थ है कि सभी फ़ील्ड जो पहले से ही जावा ऑब्जेक्ट में किसी प्रॉपर्टी या सेटर विधि से मैप नहीं किए गए हैं।

सिंटैक्स

सार्वजनिक @interface JsonAnyGetterpublic @interface JsonAnyGetter

उदाहरण

आयात करें पब्लिक क्लास JsonAnyGetterAndJsonAnySetterTest {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) JsonGenerationException, JsonMappingException, IOException {कर्मचारी emp1 =नया कर्मचारी (); emp1.setFirstName ("आदित्य"); emp1.setLastName ("साई"); emp1.setEmpId(125); emp1.getAdditionalInformation ()। पुट ("तकनीक 1", "मशीन लर्निंग"); emp1.getAdditionalInformation ()। पुट ("टेक्नोलॉजी 2", "रोबोटिक्स"); ऑब्जेक्टमैपर मैपर =नया ऑब्जेक्टमैपर (); स्ट्रिंग jsonStr =mapper.writerWithDefaultPrettyPrinter ()। writeValueAsString (emp1); System.out.println (jsonStr); System.out.println ("ऑब्जेक्ट के लिए JSON को डिसेरिएलाइज़ करना:"); कर्मचारी emp2 =mapper.readValue(jsonStr, Employee.class); System.out.println ("आईडी:" + emp2.getEmpId ()); System.out.println ("फर्स्टनाम:" + emp2.getFirstName ()); System.out.println ("अंतिम नाम:" + emp2.getLastName ()); System.out.println ("अतिरिक्त जानकारी:" + emp2.getAdditionalInformation ()); }}// कर्मचारी वर्ग@JsonInclude(JsonInclude.Include.NON_NULL)@JsonPropertyOrder({"firstName", "lastName", "technologies", "empId" })वर्ग कर्मचारी { @JsonProperty("EMPLOYEE_ID") निजी int empId; @JsonProperty("EMPLOYEE_FIRST_NAME") निजी स्ट्रिंग प्रथम नाम; @JsonProperty("EMPLOYEE_LAST_NAME") निजी स्ट्रिंग अंतिम नाम; निजी मानचित्र <स्ट्रिंग, स्ट्रिंग> अतिरिक्त जानकारी =नया हैश मैप <> (); सार्वजनिक int getEmpId () {वापसी empId; } सार्वजनिक शून्य setEmpId (int empId) {this.empId =empId; } सार्वजनिक स्ट्रिंग getFirstName () { पहला नाम लौटाएं; } सार्वजनिक शून्य सेटफर्स्टनाम (स्ट्रिंग फर्स्टनाम) {this.firstName =firstName; } सार्वजनिक स्ट्रिंग getLastName () {वापसी अंतिम नाम; } सार्वजनिक शून्य सेटलास्टनाम (स्ट्रिंग अंतिम नाम) { यह अंतिम नाम =अंतिम नाम; } @JsonAnyGetter सार्वजनिक मानचित्र <स्ट्रिंग, स्ट्रिंग> अतिरिक्त जानकारी प्राप्त करें () {अतिरिक्त जानकारी लौटाएं; } सार्वजनिक शून्य सेट अतिरिक्त सूचना (मानचित्र <स्ट्रिंग, स्ट्रिंग> अतिरिक्त सूचना) { यह। अतिरिक्त सूचना =अतिरिक्त सूचना; } @JsonAnySetter सार्वजनिक शून्य सेट AdditionalProperty (अंतिम स्ट्रिंग नाम, अंतिम स्ट्रिंग मान) {this.additionalInformation.put (नाम, मान); }}

आउटपुट

{ "EMPLOYEE_FIRST_NAME" :"Adithya", "EMPLOYEE_LAST_NAME" :"Sai", "EMPLOYEE_ID" :125, "technology1" :"Machine Learning", "technology2" :"Robotics"}JSON को Object:id के लिए डीसेरियलाइज़ करना:125firstName :AdithyalastName :Saiअतिरिक्त जानकारी :{तकनीक 1=मशीन लर्निंग, टेक्नोलॉजी2=रोबोटिक्स}

  1. हम जावा में पैक () विधि का उपयोग कब कर सकते हैं?

    द पैक() विधि विंडो . में परिभाषित है जावा में वर्ग और यह फ्रेम को आकार देता है ताकि इसकी सभी सामग्री उनके पसंदीदा आकार पर या उससे ऊपर हो। पैक() . का एक विकल्प विधि setSize() . को कॉल करके स्पष्ट रूप से एक फ्रेम आकार स्थापित करना है या सेटबाउंड्स () तरीके। सामान्य तौर पर, पैक () . का उपयोग करते हु

  1. हम जावा में इनवोकलेटर () विधि को कैसे कॉल कर सकते हैं?

    एक आह्वानबाद में() विधि एक स्थिर . है स्विंग यूटिलिटीज . की विधि वर्ग और इसका उपयोग किसी कार्य को करने के लिए किया जा सकता है अतुल्यकालिक रूप से एडब्ल्यूटी . में ईवेंट डिस्पैचर थ्रेड . SwingUtilities.invokeLater() विधि SwingUtilities.invokeAndWait() . की तरह काम करती है सिवाय इसके कि यह अनुरोध

  1. एक अमूर्त वर्ग का उपयोग कब करें और जावा में इंटरफ़ेस का उपयोग कब करें?

    एक इंटरफ़ेस का उपयोग अनुबंध व्यवहार को परिभाषित करने के लिए किया जा सकता है और यह दो प्रणालियों के बीच एक अनुबंध के रूप में भी कार्य कर सकता है, जबकि एक सार वर्ग मुख्य रूप से उपवर्गों के लिए डिफ़ॉल्ट व्यवहार को परिभाषित करने के लिए उपयोग किया जाता है, इसका मतलब है कि सभी बाल वर्गों को समान कार्यक्षम