Home > Java > javaTutorial > How to Create and Register Custom Serializers in Jackson for Tailored JSON Serialization?

How to Create and Register Custom Serializers in Jackson for Tailored JSON Serialization?

DDD
Release: 2024-11-26 01:11:10
Original
990 people have browsed it

How to Create and Register Custom Serializers in Jackson for Tailored JSON Serialization?

How to Utilize Custom Serializers in Jackson

In Jackson, the utilization of custom serializers enables tailored JSON serialization for specific classes.

Creating a Custom Serializer

To serialize objects from the Item class, create a custom serializer:

public class ItemSerializer extends JsonSerializer<Item> {

    @Override
    public void serialize(Item value, JsonGenerator jgen,
                          SerializerProvider provider) throws IOException,
                                                             JsonProcessingException {
        jgen.writeStartObject();
        jgen.writeNumberField("id", value.id);
        jgen.writeNumberField("itemNr", value.itemNr);
        jgen.writeNumberField("createdBy", value.createdBy.id);
        jgen.writeEndObject();
    }
}
Copy after login

Registering the Custom Serializer

After creating the serializer, it needs to be registered with Jackson:

SimpleModule simpleModule = new SimpleModule("SimpleModule",
                                              new Version(1,0,0,null));
simpleModule.addSerializer(new ItemSerializer());
mapper.registerModule(simpleModule);
Copy after login

Handling Type Registration

Jackson raises an error due to missing type handling. Resolve this by handling the types explicitly:

public class ItemSerializer extends JsonSerializer<Item> {

    @Override
    public void serialize(Item value, JsonGenerator jgen,
                          SerializerProvider provider) throws IOException,
                                                             JsonProcessingException {
        // ... (Serialization code)
    }

    @Override
    public Class<Item> handledType() {
        return Item.class;
    }
}
Copy after login

Serializing with Jackson

With the custom serializer registered, serialize the Item object as usual:

StringWriter writer = new StringWriter();

try {
    mapper.writeValue(writer, myItem);
} catch (JsonGenerationException | JsonMappingException | IOException e) {
    e.printStackTrace();
}
Copy after login

Example for User Serialization

To serialize User objects with a custom serialization strategy, create a similar serializer and register it with Jackson.

Remember, custom serializers provide flexibility in controlling the JSON representation of your objects, catering to specific serialization requirements.

The above is the detailed content of How to Create and Register Custom Serializers in Jackson for Tailored JSON Serialization?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template