我正在使用 Morphia (0.99) 将 POJO 映射到 MongoDB (2.0.6)。现在我想从我的数据存储中返回一个集合/列表作为 JSON 结构,其中包括要使用 jQuery 发送到浏览器客户端的每个对象的 ID。
我从数据存储中检索 POJO 列表,然后将每个对象转换为DBObject
MongoDB 对象。除了对象的 id 不包含在对象的打印输出中之外,这工作正常。这可能是由于ID是从A类继承的。POJO B有很多属性成员,所以一个想法是做一个简单的代理POJO然后序列化。
如何从DBObject
(使用 Morphia 或 MongoDB 驱动程序)列表中创建 JSON 结构,以及如何在结构中包含id
每个元素的结构?
PS。我一直在查看BasicBSONList
MongoDB 驱动程序对象或使用 GSON (Google) lib,但我缺乏如何执行此操作的模式。
POJO 类
Class A {
@Id
private ObjectId id;
}
Class B extends A {
...
@Override
public ObjectId getId() {
return super.getId();
}
@Override
public void setId(ObjectId id) {
super.setId(id);
}
...
}
Morphia /MongoDB 查询
...
List<B> bList = bQry.asList();
List<DBObject> dbObjList = Util.mapObjectToStringList((List<Object>)(List<?>)bList);
...
public static List<DBObject> mapObjectToStringList(List<Object> objList) {
List<DBObject> dbObjectList = new ArrayList<DBObject>();
Mapper mapper = morph.getMapper();
for(Object obj : objList) {
DBObject dbObj = mapper.toDBObject(obj);
Util.debug("Result as DB Object: " +dbObj.toString());
dbObjectList.add(dbObj);
}
return dbObjectList;
}