juzgar por sus comentarios, simplemente cree un Serializer
personalizado.
Su JsonSerializer
. Puedes tener estos para cada tipo de objeto que intentas serializar.
public class MyObjectJsonSerializer extends JsonSerializer<MyObject> {
@Override
public Class<MyObject> handledType() {
return MyObject.class;
}
@Override
public void serialize(MyObject myObject, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
jgen.writeStartObject();
jgen.writeNumberField("id", myObject.getId());
// whatever else you need
jgen.writeEndObject();
}
}
Su ObjectMapper
.
public class MyObjectMapper extends ObjectMapper {
public MyObjectMapper() {
SimpleModule module = new SimpleModule("My Module", new Version(1, 0, 0, "SNAPSHOT"));
module.addSerializer(new MyObjectJsonSerializer());
this.registerModule(module);
}
}
Y luego, en su primavera-config.xml.
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="objectMapper" ref="myObjectMapper" />
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<bean id="myObjectMapper" class="com.manne.app.objectmapper.MyObjectMapper" />
Puede que esta no sea la respuesta que está buscando, pero también me he encontrado con este problema y he tenido que resolverlo escribiendo un 'ObjectMapper' personalizado y' JsonSerializer' que tratan sobre la relación. – bvulaj
¿Alguien puede darme una solución a mi problema, esto sigue teniendo mi desarrollo? –
Veo dos soluciones que se han publicado. ¿Lo has probado? – bvulaj