द @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=रोबोटिक्स}