ऐसा लगता है कि जैक्सन को स्ट्रिंग आईडी फ़ील्ड को एक विशेष तरीके से क्रमबद्ध करने के लिए अनुकूलित किया गया है। यह संभवत:org.bson . के साथ एकीकरण का एक भाग है पुस्तकालय।
समस्या यह है कि आपका deserializer 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());
}
}
आप जैक्सन-जोंगो प्रदाता वर्ग अपनाने पर भी विचार कर सकते हैं। सभी वर्गों के लिए ऑब्जेक्ट आईडी क्रमांकन को ठीक करने के लिए।