sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo serializar ObjectId a JSON?

Parece que Jackson se ha personalizado para serializar el campo de identificación de cadena de una manera especial. Probablemente sea parte de la integración con org.bson biblioteca.

El problema es que su deserializador está parametrizado por ObjectId escriba en lugar de String o simple Object . Intente cambiarlo de la siguiente manera y también elimine el @ObjectId anotación de la declaración de campo. Aquí hay un ejemplo:

public class ObjectIdSerializer extends JsonSerializer<Object> {
    @Override
    public void serialize(Object value, JsonGenerator jsonGen,SerializerProvider provider) throws IOException {
        jsonGen.writeString(value.toString());
    }
}

También puede considerar adoptar la clase de proveedor Jackson-Jongo para arreglar la serialización de id de objeto para todas las clases.