रुचि रखने वालों के लिए, मुझे अपनी समस्या का समाधान मिल गया। यह पता चला है कि BSON प्रारूप को JSON की तरह ही 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
}
आदि.
उपरोक्त ढांचे के बाद टेम्पलेट वर्ग की घोषणा करने से मुझे जीएसओएन लाइब्रेरी से कोड की कुछ पंक्तियों का उपयोग करके मोंगोडीबी के स्वरूपण को आसानी से पार्स करने की अनुमति मिली। कृपया ध्यान दें कि मैंने अपनी वेब सेवा से डेटा लौटाते समय प्रत्येक प्रविष्टि में "\ n" को जोड़ दिया ताकि प्रत्येक दस्तावेज़ को मोंगो के बीएसओएन प्रतिक्रिया में अलग किया जा सके:
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();
}