sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur serialiserar jag ObjectId till JSON?

Det ser ut som att Jackson har anpassats för att serialisera sträng-id-fältet på ett speciellt sätt. Det är förmodligen en del av integrationen med org.bson bibliotek.

Problemet är att din deserializer parametriseras av ObjectId typ istället för String eller vanligt Object . Försök att ändra det enligt följande och även ta bort @ObjectId anteckning från fältdeklarationen. Här är ett exempel:

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

Du kan också överväga att använda Jackson-Jongo-leverantörsklassen för att fixa serialiseringen av objekt-id för alla klasser.




  1. Meteor skickar ett id till en länk

  2. MongoDB:Uppdaterar underdokument

  3. Replikera endast dokument där {'public':true} i MongoDB

  4. Hur man villkorligt projicerar fält under aggregat i mongodb