Il semble que Jackson ait été personnalisé pour sérialiser le champ d'identification de chaîne d'une manière spéciale. Cela fait probablement partie de l'intégration avec org.bson
bibliothèque.
Le problème est que votre désérialiseur est paramétré par le ObjectId
tapez au lieu de String
ou simplement Object
. Essayez de le modifier comme suit et supprimez également le @ObjectId
annotation de la déclaration de champ. Voici un exemple :
public class ObjectIdSerializer extends JsonSerializer<Object> {
@Override
public void serialize(Object value, JsonGenerator jsonGen,SerializerProvider provider) throws IOException {
jsonGen.writeString(value.toString());
}
}
Vous pouvez également envisager d'adopter la classe de fournisseurs Jackson-Jongo pour corriger la sérialisation de l'ID d'objet pour toutes les classes.