如何从BSON对象获取可读字符串

kin*_*iko 3 java mongodb bson

我有一个org.bson.conversions.Bson对象,我想变成可读的东西进行调试.

我已经尝试过使用Mongo JSON util,但我得到了RuntimeExceptions,说它不能序列化这个类型com.mongodb.client.model.Filters$AndFilter

Bson query = ...
String json = com.mongodb.util.JSON.serialize(query);
Run Code Online (Sandbox Code Playgroud)

这告诉了我关于BSON结构的一些信息,但我还是希望以某种方式让它具有可读性.

gly*_*ing 6

您可以使用toBsonDocumentBson实例转换为a 然后使用.BsonDocumentBsonDocument.toJson()

例如 ...

Bson bson = Filters.eq("name", "Bob");

BsonDocument asBsonDocument = bson.toBsonDocument(BsonDocument.class, 
    MongoClient.getDefaultCodecRegistry());

System.out.println(asBsonDocument.toJson());
Run Code Online (Sandbox Code Playgroud)

...将打印:

{ "name" : "Bob" }
Run Code Online (Sandbox Code Playgroud)