@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;"}