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

जावा में @JsonSerialize एनोटेशन का उपयोग करके कस्टम सीरिएलाइज़र को कैसे कार्यान्वित करें?


@JsonSerialize एनोटेशन किसी क्षेत्र के क्रमांकन के दौरान कस्टम धारावाहिक घोषित करने के लिए प्रयोग किया जाता है। हम StdSeralizer . का विस्तार करके एक कस्टम सीरिएलाइज़र लागू कर सकते हैं कक्षा। और क्रमानुसार () . को ओवरराइड करने की आवश्यकता है StdSerializer . की विधि कक्षा।

सिंटैक्स

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

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

उदाहरण

आयात करें। jackson.databind.ser.std.*;सार्वजनिक वर्ग JsonSerializeAnnotationTest {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) JsonProcessingException, IOException फेंकता है {कर्मचारी emp =नया कर्मचारी (115, "आदित्य", नया स्ट्रिंग [] {"जावा", "पायथन", "स्कैला"}); ऑब्जेक्टमैपर मैपर =नया ऑब्जेक्टमैपर (); स्ट्रिंग jsonString =mapper.writerWithDefaultPrettyPrinter ()। लिखेंValueAsString (emp); System.out.println (jsonString); }}// CustomSerializer classclass CustomSerializer StdSerializer बढ़ाता है { public CustomSerializer(Class t) {super(t); } सार्वजनिक CustomSerializer() { यह (कर्मचारी वर्ग); } @Override सार्वजनिक शून्य क्रमबद्धता (कर्मचारी emp, JsonGenerator jgen, SerializerProvider sp) IOException, JsonGenerationException { StringBuilder sb =new StringBuilder() फेंकता है; jgen.writeStartObject (); jgen.writeNumberField("id", emp.getId ()); jgen.writeStringField ("नाम", emp.getName ()); for (स्ट्रिंग एस:emp.getLanguages ​​()) {sb.append(s).append(";"); } jgen.writeStringField ("भाषाएँ", sb.toString ()); jgen.writeEndObject (); }}// कर्मचारी वर्ग@JsonSerialize(=CustomSerializer.class का उपयोग करके) वर्ग कर्मचारी {निजी इंट आईडी; निजी स्ट्रिंग नाम; निजी स्ट्रिंग [] भाषाएं; सार्वजनिक कर्मचारी (इंट आईडी, स्ट्रिंग नाम, स्ट्रिंग [] भाषाएं) {this.id =id; यह नाम =नाम; यह। भाषाएँ =भाषाएँ; } सार्वजनिक int getId () { this.id लौटाएं; } सार्वजनिक स्ट्रिंग getName () { इस नाम को वापस करें; } सार्वजनिक स्ट्रिंग [] getLanguages ​​() { इसे लौटाएं। भाषाएं; } @ओवरराइड सार्वजनिक स्ट्रिंग टूस्ट्रिंग () {स्ट्रिंगबिल्डर एसबी =नया स्ट्रिंगबिल्डर ("आईडी:")। संलग्न करें (यह। आईडी)। संलग्न करें ("\ n नाम:")। संलग्न करें (यह। नाम)। संलग्न करें ("\ n भाषाएं:"); for(String s:this.languages) {sb.append(" ").append(s); } वापसी sb.toString (); }}

आउटपुट

{ "id" :115, "name" :"Adithya", "languages" :"Java;Python;Scala;"}

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

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

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

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

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

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