Bagi mereka yang tertarik, saya menemukan solusi untuk masalah saya. Ternyata format BSON bisa diurai seperti JSON menggunakan driver GSON Google. Satu bagian rumit yang harus saya tangani adalah mencari cara untuk menyimpan bidang bersarang di kelas templat saya. Cara untuk mengizinkan GSON mengurai dokumen bersarang adalah dengan mendeklarasikan kelas dalam statis di kelas template Anda. Ini contohnya:
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
}
dll.
Mendeklarasikan kelas template mengikuti kerangka kerja di atas memungkinkan saya untuk dengan mudah mengurai pemformatan MongoDB menggunakan beberapa baris kode dari pustaka GSON. Harap perhatikan bahwa saya menggabungkan "\n" ke setiap entri saat mengembalikan data dari layanan web saya untuk memisahkan setiap dokumen dalam respons BSON 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();
}