Jacksonは、文字列IDフィールドを特別な方法でシリアル化するようにカスタマイズされているようです。これはおそらくorg.bson
との統合の一部です 図書館。
問題は、デシリアライザーがObjectId
によってパラメーター化されていることです。 String
の代わりに入力する またはプレーンなObject
。次のように変更し、@ObjectId
も削除してみてください フィールド宣言からの注釈。次に例を示します:
public class ObjectIdSerializer extends JsonSerializer<Object> {
@Override
public void serialize(Object value, JsonGenerator jsonGen,SerializerProvider provider) throws IOException {
jsonGen.writeString(value.toString());
}
}
Jackson-Jongoプロバイダークラス の採用を検討することもできます。 すべてのクラスのオブジェクトIDのシリアル化を修正します。