public class ObjectIdSerializer extends JsonSerializer<ObjectId> {
@Override
public void serialize(
ObjectId value,
JsonGenerator jgen,
SerializerProvider provider) throws IOException, JsonProcessingException {
jgen.writeString(value.toString());
}
}
public class ObjectIdDeserializer extends JsonDeserializer<ObjectId>{
@Override
public ObjectId deserialize(
JsonParser jp,
DeserializationContext ctxt) throws IOException, JsonProcessingException {
ObjectCodec oc = jp.getCodec();
JsonNode node = oc.readTree(jp);
return new ObjectId(node.getTextValue());
}
}
@Document
public class MyDocument {
@JsonDeserialize(using = ObjectIdDeserializer.class)
@JsonSerialize(using = ObjectIdSerializer.class)
private ObjectId id;
private String name;
...
}