对于那些感兴趣的人,我找到了解决我的问题的方法。事实证明,使用Google 的 GSON 驱动程序可以像解析 JSON 一样解析 BSON 格式。 我必须处理的一个棘手部分是想办法在我的模板类中存储嵌套字段。允许 GSON 解析嵌套文档的方法是在模板类中声明静态内部类。这是一个例子:
public BSONObject {
// Private fields
private int foo;
private String bar;
// Constructors
public BSONObject() {}
// Static inner subclasses
private Widget widget;
private Duck quack;
// Getters & Setters for outer class
public int getFoo() {...}
public String getBar() {...}
public Widget getWidget() {...}
public Duck getDuck() {...}
// Static inner class declarations
public static Widget {
// include vars & getters/setters
}
等等
遵循上述框架声明模板类允许我使用 GSON 库中的几行代码轻松解析 MongoDB 的格式。请注意,当从我的 web 服务返回数据时,我将“\n”连接到每个条目,以便在 Mongo 的 BSON 响应中分隔每个文档:
public String getNestedField() {
Gson gson = new Gson();
String [] split = response.split("\n");
JsonParser p = new JsonParser();
String json = split[0];
BSONObject b = gson.fromJson(p.parse(json), BSONObject.class);
return b.getWidget().getField();
}