Skip to content

Customize JSON messages

Csaba Tamas edited this page May 8, 2016 · 3 revisions

###Original Class

@JsonDeserialize(using = MediaTypeDeserializer.class)
@JsonSerialize(using = MediaTypeSerializer.class)
public class MediaType {
...
}

###Serializer:

public class MediaTypeSerializer extends StdSerializer<MediaType> {

    public MediaTypeSerializer() {
        super(MediaType.class);
    }

    @Override
    public void serialize(MediaType value, JsonGenerator gen, SerializerProvider provider) throws IOException {
        gen.writeString(value.getName());
    }
    
}

###Deserializer:

public class MediaTypeDeserializer extends StdDeserializer<MediaType> {

    public MediaTypeDeserializer() {
        super(MediaType.class);
    }

    @Override
    public MediaType deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
        JsonNode node = p.readValueAsTree();
        String mediaTypeText = node.get("media_type").asText();
        return new MediaType(mediaTypeText);
    }
}

Clone this wiki locally