Для тех, кто заинтересован, я нашел решение своей проблемы. Оказывается, что формат BSON можно анализировать так же, как и JSON, используя драйвер GSON от Google. Одна сложная часть, с которой мне пришлось столкнуться, заключалась в поиске способа хранения вложенных полей в моем шаблонном классе. Способ разрешить 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
}
и т.д.
Объявление класса шаблона в соответствии с вышеуказанной платформой позволило мне легко разобрать форматирование MongoDB, используя несколько строк кода из библиотеки GSON. Обратите внимание, что я объединял "\ n" для каждой записи при возврате данных из моего веб-сервиса, чтобы отделить каждый документ в ответе 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();
}