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