You can write a custom serializer and de-serializer with Java code in the following lines:
class CustomSerializer extends JsonSerializer<ARow> { @Override public Class<ARow> handledType() { return ARow.class; } public void serialize(ARow value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeStartObject(); jgen.writeStringField("ounc", value.ounces.toLowerCase());
}
and register this custom serializer with Jackson:
ObjectMapper m = new ObjectMapper(); SimpleModule testModule = new SimpleModule("MyModule", new Version(1, 0, 0, null)); testModule.addSerializer(new CustomSerializer()); m.registerModule(testModule);
To set this using Spring MappingJacksonJsonView , you need to expand your own ObjectMapper
public class MyCustomObjectMapper extends ObjectMapper { public MyCustomObjectMapper() { SimpleModule module = new SimpleModule("My Module", new Version(1, 0, 0, "SNAPSHOT")); module.addSerializer(new CustomSerializer()); module.addSerializer(new CustomSerializer2());
Create a bean for him
<bean id="myCustomObjectMapper" class="com.foo.proj.objectmapper.MyCustomObjectMapper"/>
And enter it in MappingJacksonJsonView
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"> <property name="objectMapper" ref="myCustomObjectMapper"/> </bean>
source share