使用Java中的Morphia / MongoDB将POJO对象集合序列化为JSON结构

时间:2013-04-22 15:02:56

标签: java json mongodb morphia

我使用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(谷歌)库,但我缺乏如何执行此操作的模式。

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;
}

0 个答案:

没有答案