興味のある人のために、私は自分の問題の解決策を見つけました。 BSON形式は、GoogleのGSONドライバー を使用してJSONと同じように解析できることがわかりました。 私が対処しなければならなかった1つのトリッキーな部分は、ネストされたフィールドをテンプレートクラスに格納する方法を考え出すことでした。 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のフォーマットを簡単に解析できました。 MongoのBSON応答で各ドキュメントを区切るために、Webサービスからデータを返すときに各エントリに「\n」を連結したことに注意してください。
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();
}