虽然与Convert DBObject to a POJO using MongoDB Java Driver类似,但我的问题不同,因为我对使用Jackson进行映射感兴趣.
我有一个对象,我想将其转换为Mongo DBObject实例.我想使用Jackson JSON框架来完成这项工作.
一种方法是:
DBObject dbo = (DBObject)JSON.parse(m_objectMapper.writeValueAsString(entity));
然而,根据https://github.com/FasterXML/jackson-docs/wiki/Presentation:-Jackson-Performance的说法,这是最糟糕的方式.所以,我在寻找另一种 Select .理想情况下,我希望能够连接到JSON生成管道并动态填充DBObject
实例.这是可能的,因为在我的例子中,目标是一个BasicDBObject
实例,它实现了Map接口.因此,它应该可以很容易地安装到管道中.
现在,我知道我可以使用ObjectMapper.convertValue
函数将对象转换为Map,然后使用BasicDBObject
类型的Map构造函数将Map递归转换为BasicDBObject
实例.但是,我想知道我是否可以消除中间映射,直接创建BasicDBObject
.
注意,因为BasicDBObject
本质上是一个映射,所以相反的转换,即从标量DBObject
到POJO的转换非常简单,应该非常有效:
DBObject dbo = getDBO();
Class clazz = getObjectClass();
Object pojo = m_objectMapper.convertValue(dbo, clazz);
最后,我的POJO没有任何JSON注释,我希望它保持这种方式.