Java 如何转换FindTable<;MyPojo>;使用与序列化Mongo文档实体完全相同的语法创建JSON

Java 如何转换FindTable<;MyPojo>;使用与序列化Mongo文档实体完全相同的语法创建JSON,java,json,mongodb,Java,Json,Mongodb,Q1-如何将POJO转换为等效的基于Mongo文档的JSON(保留Id和日期) POJO 实现了对POJO的迭代,并使用GSON将其序列化 List<Question> questionsAsPojo = QuestionService.getQuestions(companyId, groupId, userId); BasicDBList list = new BasicDBList(); Gson gson = new Gson();

Q1-如何将POJO转换为等效的基于Mongo文档的JSON(保留Id和日期)

POJO

实现了对POJO的迭代,并使用GSON将其序列化

    List<Question> questionsAsPojo = QuestionService.getQuestions(companyId, groupId, userId);
    
    BasicDBList list = new BasicDBList();
    Gson gson = new Gson();
    for (Question question : questionsAsPojo) {
        final String asJson = gson.toJson(question);
        final BasicDBObject asBasicDBObject = BasicDBObject.parse(asJson);
        list.add(asBasicDBObject);
    }
    data.append("questionsPojoToBasicDBListWithBasicDBObject", list);
问题2-有没有办法将
FindIterable
FindIterable
序列化为Mongo内置的JSON字符串?目前,我正在对它们进行迭代,以根据需要返回Pojo或文档的列表,当实体的数量预计很小时,这是很好的

问题2-在完全转换为使用较新的文档类型之前,我通常需要将
POJO
转换为
BasicDBObject
/
BasicDBList
。有没有一种方法可以有效地将文档转换为BasicDBObject?到目前为止,我看到的最接近的方法是序列化为JSON字符串,然后根据需要将该字符串转换为文档或DBObject

    public static Document toDocument(DBObject dbObject) {
        return Document.parse(dbObject.toString());
    }

    public static DBObject toDBObject(Document document) {
        return BasicDBObject.parse(document.toJson());
    }   

本质上,我想从BasicDBList和BasicDBObject转换到POJO,但在通过线路序列化响应时,我想将POJO序列化到文档,但在转换代码之前,我还想将文档转换为BasicDBObject

{
    "status": "success",
    "data": {
        "questionsAsDoc": [
            {
                "_id": {
                    "$oid": "605b3d62958763a2e18be480"
                },
                "companyId": {
                    "$oid": "554a0123c2e625bd02259318"
                },
                "groupId": null,
                "title": "Test Title 1",
                "desc": "Description 1",
                "style": "range",
                "minRange": 1,
                "maxRange": 10,
                "comments": false,
                "startDate": {
                    "$date": "2021-03-01T00:00:00Z"
                },
                "endDate": {
                    "$date": "2021-03-31T23:59:00Z"
                },
                "deleted": true,
                "frequencyMins": 1
            },
            ..
        ],
    }
}
    public static Document toDocument(DBObject dbObject) {
        return Document.parse(dbObject.toString());
    }

    public static DBObject toDBObject(Document document) {
        return BasicDBObject.parse(document.toJson());
    }