【发布时间】:2012-06-09 14:13:32
【问题描述】:
我必须将以下代码从 Jackson 1.9 迁移到 2.0
public class ObjectIdDeserializer extends JsonDeserializer<ObjectId> {
@Override
public ObjectId deserialize(JsonParser jp, DeserializationContext context) {
JsonNode oid = jp.readValueAsTree().get("$oid");
return new ObjectId(oid.getTextValue());
}
}
因为readValueAsTree() 的返回类型已从JsonNode 更改为TreeNode,我无法再访问它的值。我尝试了hasCurrentToken()、nextToken() 和其他奇怪的方法,比如没有找到优雅访问树节点的方法。我使用的get 方法依赖于map,因此不需要任何迭代。
【问题讨论】: