
- Java Tutorial
- Java - Home
- Java - Overview
- Java - Environment Setup
- Java - Basic Syntax
- Java - Object & Classes
- Java - Constructors
- Java - Basic Datatypes
- Java - Variable Types
- Java - Modifier Types
- Java - Basic Operators
- Java - Loop Control
- Java - Decision Making
- Java - Numbers
- Java - Characters
- Java - Strings
- Java - Arrays
- Java - Date & Time
- Java - Regular Expressions
- Java - Methods
- Java - Files and I/O
- Java - Exceptions
- Java - Inner classes
- Java Object Oriented
- Java - Inheritance
- Java - Overriding
- Java - Polymorphism
- Java - Abstraction
- Java - Encapsulation
- Java - Interfaces
- Java - Packages
- Java Advanced
- Java - Data Structures
- Java - Collections
- Java - Generics
- Java - Serialization
- Java - Networking
- Java - Sending Email
- Java - Multithreading
- Java - Applet Basics
- Java - Documentation
- Java Useful Resources
- Java - Questions and Answers
- Java - Quick Guide
- Java - Useful Resources
- Java - Discussion
- Java - Examples
How to implement custom serializer using @JsonSerialize annotation in Java?
The @JsonSerialize annotation is used to declare custom serializer during the serialization of a field. We can implement a custom serializer by extending the StdSeralizer class. and need to override the serialize() method of StdSerializer class.
Syntax
@Target(value={ANNOTATION_TYPE,METHOD,FIELD,TYPE,PARAMETER}) @Retention(value=RUNTIME) public @interface JsonSerialize
In the below program, we can implement a custom serializer using @JsonSerialize annotation
Example
import java.io.*; import com.fasterxml.jackson.core.*; import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.annotation.*; import com.fasterxml.jackson.databind.ser.std.*; public class JsonSerializeAnnotationTest { public static void main (String[] args) throws JsonProcessingException, IOException { Employee emp = new Employee(115, "Adithya", new String[] {"Java", "Python", "Scala"}); ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(emp); System.out.println(jsonString); } } // CustomSerializer class class CustomSerializer extends StdSerializer { public CustomSerializer(Class t) { super(t); } public CustomSerializer() { this(Employee.class); } @Override public void serialize(Employee emp, JsonGenerator jgen, SerializerProvider sp) throws IOException, JsonGenerationException { StringBuilder sb = new StringBuilder(); jgen.writeStartObject(); jgen.writeNumberField("id", emp.getId()); jgen.writeStringField("name", emp.getName()); for(String s: emp.getLanguages()) { sb.append(s).append(";"); } jgen.writeStringField("languages", sb.toString()); jgen.writeEndObject(); } } // Employee class @JsonSerialize(using=CustomSerializer.class) class Employee { private int id; private String name; private String[] languages; public Employee(int id, String name, String[] languages) { this.id = id; this.name = name; this.languages = languages; } public int getId() { return this.id; } public String getName() { return this.name; } public String[] getLanguages() { return this.languages; } @Override public String toString() { StringBuilder sb = new StringBuilder("ID: ").append(this.id).append("\nName: ").append(this.name).append("\nLanguages:"); for(String s: this.languages) { sb.append(" ").append(s); } return sb.toString(); } }
Output
{ "id" : 115, "name" : "Adithya", "languages" : "Java;Python;Scala;" }
- Related Articles
- How to implement a custom serializer using the Jackson library in Java?\n
- How to implement custom deserializer using @JsonDeserialize annotation in Java?\n
- How to implement custom FieldNamingStrategy using Gson in Java?
- How to implement custom JsonAdapter using Gson in Java?
- How to implement custom JSON serialization with Gson in Java?
- How can we implement a Custom HashSet in Java?
- How can we implement a custom iterable in Java?
- How to implement custom events in jQuery?
- How to implement custom JSON de-serialization with Gson in Java?\n
- How to deserialize a JSON string using @JsonCreator annotation in Java?
- How to use @Until annotation using the Gson library in Java?
- How to implement a custom Python Exception with custom message?
- What to use @SerializedName annotation using Gson in Java?
- How to exclude a field from JSON using @Expose annotation in Java?
- How to control serialization through @JSON annotation using flexjson in Java?\n

Advertisements