Pour ceux que ça intéresse, j'ai trouvé la solution à mon problème. Il s'avère que le format BSON peut être analysé comme JSON en utilisant le pilote GSON de Google. La seule partie délicate à laquelle j'ai dû faire face était de trouver un moyen de stocker des champs imbriqués dans ma classe de modèle. La façon de permettre à GSON d'analyser les documents imbriqués consiste à déclarer des classes internes statiques dans votre classe de modèle. Voici un exemple :
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
}
etc.
La déclaration de la classe de modèle suivant le cadre ci-dessus m'a permis d'analyser facilement le formatage de MongoDB en utilisant quelques lignes de code de la bibliothèque GSON. Veuillez noter que j'ai concaténé un "\n" à chaque entrée lors du retour des données de mon service Web afin de séparer chaque document dans la réponse BSON de Mongo :
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();
}