MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie wird ObjectId in JSON serialisiert?

Es sieht so aus, als ob Jackson angepasst wurde, um das Zeichenfolgen-ID-Feld auf besondere Weise zu serialisieren. Das ist wahrscheinlich ein Teil der Integration mit org.bson Bibliothek.

Das Problem ist, dass Ihr Deserializer durch die ObjectId parametrisiert wird statt String eingeben oder einfaches Object . Versuchen Sie es wie folgt zu ändern und entfernen Sie auch die @ObjectId Anmerkung aus der Felddeklaration. Hier ist ein Beispiel:

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

Sie können auch erwägen, die Jackson-Jongo-Anbieterklasse zu übernehmen um die Objekt-ID-Serialisierung für alle Klassen zu korrigieren.