For de interesserede fandt jeg løsningen på mit problem. Det viser sig, at BSON-formatet kan parses ligesom JSON ved hjælp af Googles GSON-driver. Den ene vanskelige del, som jeg skulle håndtere, var at finde en måde at gemme indlejrede felter i min skabelonklasse. Måden at tillade GSON at parse indlejrede dokumenter er at erklære statiske indre klasser i din skabelonklasse. Her er et eksempel:
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
}
osv.
Erklæring af skabelonklassen efter ovenstående ramme gav mig mulighed for nemt at parse MongoDB's formatering ved hjælp af et par linjer kode fra GSON-biblioteket. Bemærk venligst, at jeg sammenkædede et "\n" til hver post, når jeg returnerede data fra min webservice for at adskille hvert dokument i Mongos BSON-svar:
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();
}