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.