J'utilise SpringBoot, Spring Data et MongoRepository pour stocker et récupérer des objets.Deserializer personnalisé utilisant MongoRepository
Lors de l'utilisation de MongoRepository, existe-t-il un moyen de fournir un désérialiseur json personnalisé (de préférence un GSON, qui peut effectuer un travail supplémentaire au lieu du désérialiseur interne)?
Par exemple, je fais appel:
Data data = repo.findOne(id); // where repo is a MongoRepository
Je voudrais avoir quelques données supplémentaires champs définis de manière personnalisée (les appeler des valeurs de champ dérivées). Je peux bien sûr définir les champs dérivés directement sur l'objet de données ci-dessus, mais ce serait plus propre si je peux accrocher un désérialiseur au moment de la récupération.
Par exemple, sans données de printemps, je peux utiliser les curseurs de MongoDB et crochet gson désérialiseurs comme ci-dessous:
public List<Data> getData() {
Gson gson = new Gson();
List<Data> dataRecords = new ArrayList<Data>();
MongoCursor<Document> cursor = db.getCollection("DataCollection").find().iterator();
try {
while (cursor.hasNext()) {
dataRecords.add(gson.fromJson(JSON.serialize(cursor.next()), Data.class));
}
} finally {
cursor.close();
}
return dataRecords;
}