MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment sérialiser ObjectId en JSON ?

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.