sql >> Database >  >> NoSQL >> MongoDB

Hoe ObjectId te serialiseren naar JSON?

Het lijkt erop dat Jackson is aangepast om het string-ID-veld op een speciale manier te serialiseren. Dat is waarschijnlijk een onderdeel van de integratie met org.bson bibliotheek.

Het probleem is dat uw deserializer wordt geparametreerd door de ObjectId typ in plaats van String of gewoon Object . Probeer het als volgt te wijzigen en verwijder ook de @ObjectId annotatie uit de velddeclaratie. Hier is een voorbeeld:

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

U kunt ook overwegen om de Jackson-Jongo-providerklasse over te nemen om de object-id-serialisatie voor alle klassen te repareren.




  1. MongoDB-groep en som met id als sleutel

  2. Hoe voer je een op waarde gebaseerde Order By uit in MongoDB?

  3. Mongoose-populatie op twee niveaus met KeystoneJs

  4. Paginering implementeren met MongoDB, Express.js &Slush