MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come serializzare ObjectId su JSON?

Sembra che Jackson sia stato personalizzato per serializzare il campo dell'ID della stringa in un modo speciale. Probabilmente è una parte dell'integrazione con org.bson biblioteca.

Il problema è che il tuo deserializzatore è parametrizzato da ObjectId digita invece di String o semplice Object . Prova a cambiarlo come segue e rimuovi anche @ObjectId annotazione dalla dichiarazione sul campo. Ecco un esempio:

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

Potresti anche considerare di adottare la classe del provider Jackson-Jongo per correggere la serializzazione dell'ID oggetto per tutte le classi.