Вы можете написать пользовательский сериализатор и десериализатор с Java-кодом, например:
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()); //Do this for all of your relevant properties..
jgen.writeEndObject();
}
}
и зарегистрировать этот пользовательский сериализатор с Джексоном:
ObjectMapper m = new ObjectMapper();
SimpleModule testModule = new SimpleModule("MyModule", new Version(1, 0, 0, null));
testModule.addSerializer(new CustomSerializer());
m.registerModule(testModule);
Чтобы настроить это с помощью Spring's MappingJacksonJsonView
, вам нужно расширить собственный 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());
// etc
this.registerModule(module);
}
}
Создайте для него боб
<bean id="myCustomObjectMapper" class="com.foo.proj.objectmapper.MyCustomObjectMapper"/>
И впрысни его в свой MappingJacksonJsonView
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<property name="objectMapper" ref="myCustomObjectMapper"/>
</bean>