Pro zájemce jsem našel řešení mého problému. Ukázalo se, že formát BSON lze analyzovat stejně jako JSON pomocí ovladače GSON od Googlu . Jedna záludná část, se kterou jsem se musel vypořádat, bylo vymyslet způsob, jak uložit vnořená pole v mé třídě šablon. Způsob, jak umožnit GSON analyzovat vnořené dokumenty, je deklarovat statické vnitřní třídy ve vaší třídě šablony. Zde je příklad:
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
}
atd.
Deklarování třídy šablony podle výše uvedeného rámce mi umožnilo snadno analyzovat formátování MongoDB pomocí několika řádků kódu z knihovny GSON. Vezměte prosím na vědomí, že při vracení dat z mé webové služby jsem ke každému záznamu zřetězil „\n“, abych oddělil každý dokument v Mongoově BSON odpovědi:
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();
}