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

जावा में @JsonDeserialize एनोटेशन का उपयोग करके कस्टम deserializer को कैसे कार्यान्वित करें?


@JsonDeserialize एनोटेशन जेएसओएन को जावा ऑब्जेक्ट में deserializing जबकि कस्टम deserializer घोषित करने के लिए प्रयोग किया जाता है। हम StdDeserializer . का विस्तार करके एक कस्टम deserializer लागू कर सकते हैं एक सामान्य प्रकार वाला वर्ग कर्मचारी और deserialize() . को ओवरराइड करने की आवश्यकता है StdDeserializer . की विधि कक्षा।

सिंटैक्स

@Target(value={ANNOTATION_TYPE,METHOD,FIELD,TYPE,PARAMETER})@Retention(value=RUNTIME)public @interface JsonDeserialize

नीचे दिए गए प्रोग्राम में, हम @JsonDeserialize का उपयोग करके एक कस्टम deserializer लागू कर सकते हैं एनोटेशन

उदाहरण

आयात करें। jackson.databind.deser.std.*;सार्वजनिक वर्ग JsonDeSerializeAnnotationTest { सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) JsonProcessingException, IOException {कर्मचारी emp =नया कर्मचारी (115, "आदित्य"); ऑब्जेक्टमैपर मैपर =नया ऑब्जेक्टमैपर (); स्ट्रिंग jsonString =mapper.writeValueAsString (emp); emp =mapper.readValue (jsonString, Employee.class); System.out.println (एम्प); }}// CustomDeserializer classclass CustomDeserializer StdDeserializer को बढ़ाता है { public CustomDeserializer(Class t) { super(t); } सार्वजनिक CustomDeserializer() { यह (कर्मचारी वर्ग); } @Override सार्वजनिक कर्मचारी deserialize(JsonParser jp, DeserializationContext dc) IOException, JsonProcessingException {int id =0; स्ट्रिंग नाम =शून्य; जेसनटोकन वर्तमान टोकन =शून्य; जबकि ((currentToken =jp.nextValue ())! =नल) {स्विच (currentToken) {केस VALUE_NUMBER_INT:if(jp.getCurrentName().equals("id")) { id =jp.getIntValue(); } टूटना; मामला VALUE_STRING:स्विच (jp.getCurrentName ()) {केस "नाम":नाम =jp.getText (); टूटना; डिफ़ॉल्ट:विराम; } टूटना; डिफ़ॉल्ट:विराम; } } नया कर्मचारी लौटाएं (आईडी, नाम); }}// कर्मचारी वर्ग@JsonDeserialize(=CustomDeserializer.class का उपयोग करके) वर्ग कर्मचारी {निजी इंट आईडी; निजी स्ट्रिंग नाम; सार्वजनिक कर्मचारी (इंट आईडी, स्ट्रिंग नाम) {this.id =id; यह नाम =नाम; } सार्वजनिक int getId () {रिटर्न आईडी; } सार्वजनिक स्ट्रिंग getName () {वापसी का नाम; } @ ओवरराइड पब्लिक स्ट्रिंग टूस्ट्रिंग() {स्ट्रिंगबिल्डर एसबी =नया स्ट्रिंगबिल्डर ("आईडी:")। संलग्न करें (यह। आईडी)। संलग्न करें ("\ n नाम:")। संलग्न करें (this.name); वापसी sb.toString (); }}

आउटपुट

आईडी:115नाम:आदित्य

  1. जावा का उपयोग करके ओपनसीवी में गाऊसी कलंक को कैसे कार्यान्वित करें?

    आप कम-पास वाले फ़िल्टर का उपयोग करके किसी छवि को फ़िल्टर करके उसे धुंधला कर सकते हैं, यह एक छवि से उच्च आवृत्ति सामग्री (शोर, किनारों) को हटा देता है। गॉसियन ब्लरिंग ओपनसीवी द्वारा प्रदान की जाने वाली धुंधली तकनीकों में से एक है, यह एक छवि के शोर को दूर करने में अत्यधिक कुशल है। यह केंद्रीय तत्व को

  1. जावा का उपयोग करके ओपनसीवी में ब्लर (औसत) कैसे कार्यान्वित करें?

    आप कम-पास वाले फ़िल्टर का उपयोग करके किसी छवि को फ़िल्टर करके उसे धुंधला कर सकते हैं, यह एक छवि से उच्च आवृत्ति सामग्री (शोर, किनारों) को हटा देता है। औसत, OpenCV द्वारा प्रदान की गई धुंधली तकनीकों में से एक है, यह केंद्रीय तत्व को कर्नेल क्षेत्र में सभी पिक्सेल के औसत से बदल देता है आप धुंधला ()

  1. जावा में JWindow का उपयोग करके हम स्प्लैश स्क्रीन को कैसे कार्यान्वित कर सकते हैं?

    एक जेविंडो एक कंटेनर है जिसे उपयोगकर्ता डेस्कटॉप पर कहीं भी प्रदर्शित किया जा सकता है। इसमें टाइटल बार . नहीं है , विंडो प्रबंधन बटन, आदि एक JFrame की तरह। जेविंडो इसमें एक JRootPane . है अपने एकमात्र बाल वर्ग के रूप में। सामग्री फलक JWindow . के किसी भी बच्चे का अभिभावक हो सकता है . एक JFra