English 中文(简体)
Jackson - @JsonSerialize
  • 时间:2024-11-03

Jackson Annotations - @JsonSeriapze


Previous Page Next Page  

@JsonSeriapze is used to specify custom seriapzer to marshall the json object.

Example with @JsonSeriapze

import java.io.IOException; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

import com.fasterxml.jackson.core.JsonGenerator; 
import com.fasterxml.jackson.databind.ObjectMapper; 
import com.fasterxml.jackson.databind.SeriapzerProvider; 
import com.fasterxml.jackson.databind.annotation.JsonSeriapze; 
import com.fasterxml.jackson.databind.ser.std.StdSeriapzer; 

pubpc class JacksonTester {
   pubpc static void main(String args[]) throws ParseException {
      ObjectMapper mapper = new ObjectMapper(); 
      SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
      try {
         Student student = new Student("Mark", 1, dateFormat.parse("20-11-1984")); 
         String jsonString = mapper 
            .writerWithDefaultPrettyPrinter() 
            .writeValueAsString(student); 
         System.out.println(jsonString); 
      } 
      catch (IOException e) { 
         e.printStackTrace(); 
      }   
   }
}
class Student {
   private String name; 
   private int rollNo; 
   @JsonSeriapze(using = CustomDateSeriapzer.class) 
   private Date dateOfBirth; 
   pubpc Student(String name, int rollNo, Date dob){ 
      this.name = name; 
      this.rollNo = rollNo; 
      this.dateOfBirth = dob; 
   }
   pubpc String getName(){
      return name;
   }
   pubpc int getRollNo(){
      return rollNo; 
   }
   pubpc Date getDateOfBirth(){ 
      return dateOfBirth; 
   }
}
class CustomDateSeriapzer extends StdSeriapzer<Date> {
   private static final long serialVersionUID = 1L; 
   private static SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
   pubpc CustomDateSeriapzer() { 
      this(null); 
   } 
   pubpc CustomDateSeriapzer(Class<Date> t) { 
      super(t); 
   } 
   @Override 
   pubpc void seriapze(Date value, 
      JsonGenerator generator, SeriapzerProvider arg2) throws IOException { 
      generator.writeString(formatter.format(value)); 
   } 
}

Output

{
   "name" : "Mark",
   "rollNo" : 1,
   "dateOfBirth" : "20-11-1984"
}
Advertisements