[英]Invalid new ObjectID(id) but its a valid ID in the DB
我正在尝试从页面中以新的ObjectID转换String ID,因此我可以使用它person.getId();
该页面发送一个String ID,但是要填充,我必须将其转换为ObjectID(否则它将打印“ EXPECTED A OBJECT BUT WAS A STRING)
所以我创建了一个反序列化,它在进入Person对象之前拦截jsonElement
@Override
public ObjectId deserialize(JsonElement jsElement, Type Type,
JsonDeserializationContext context) throws JsonParseException {
//the id that i receive is this one -> 53c9e605278cd4d23e1152bb
ObjectId obj = new ObjectId(jsElement.toString());
return obj;
}
这样,我得到这个错误:
java.lang.IllegalArgumentException: invalid ObjectId ["53c9e605278cd4d23e1152bb"]
但是如果我以这种方式使用:
@Override
public ObjectId deserialize(JsonElement jsElement, Type Type,
JsonDeserializationContext context) throws JsonParseException {
//the id that i receive is this one -> 53c9e605278cd4d23e1152bb
ObjectId obj = new ObjectId("53c9e605278cd4d23e1152bb");
return obj;
}
它起作用了,为什么呢? 如果它直接从JsonElement获取ID =不起作用,但是如果我使用ctrl c + ctrl v,它将起作用!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.