2010-09-07 18 views

Antwort

2

Die BSON site zeigt auf this

Wenn Sie es von MongoDB verwenden möchten, werfen Sie einen Blick auf this example

+2

Ich glaube, ich den kodierenden Teil von Mongo nehmen könnte und es sich um eine externe Bibliothek machen. Hatte von etwas mehr "reifem" gehofft, danke für den Tipp. –

+2

um ehrlich zu sein das mongoDB Beispiel ist ein wenig zurückgeblieben! Warum könnte es nicht so einfach sein wie JSON-Konvertierung? – nightograph

+3

Die Antwort hat einen defekten Link – seinecle

1

Um unser Modell in MongoDB bekommen wir benutzt Google Gson unser Modell in JSON zu konvertieren zuerst und dann haben wir die JSON util parse method from MongoDB verwendet, um unsere generierte JSON-Zeichenfolge zu einem DBObject zu parsen, das Sie in Ihre MongoDB einfügen können. Ich weiß nichts über Leistung, um ehrlich zu sein.

+0

Das Problem mit diesem Ansatz ist, dass Sie einige Datentypen verlieren werden (z. B. Datum). – Enrichman

1

Es gibt auch ein ziemlich neues BSON4Jackson Projekt, das es ermöglicht, Jackson für die Behandlung von BSON-Daten zu verwenden. Dies bedeutet vollständige Datenbindung (zu/von POJOs), Baummodell, sogar Streaming (inkrementelles) Lesen/Schreiben, um es mit BSON-Format zu machen.

+0

Ich hasse Jackson. Seine API schreit nur nach "Überkompilierung". Crockfords Bibliothek ist die beste und die kleinste. –

+4

Sie haben Anspruch auf Ihre schlecht durchdachte Meinung. Spielzeugbibliotheken wie die Referenzimplementierung von org.json passen wahrscheinlich gut zu Ihnen. – StaxMan

2

Es gibt auch ebson. Ich habe es nicht ausprobiert ...

6

Sie können den MongoDB-Treiber für Java verwenden, um ein BSON-Objekt zu speichern, und das in eine String konvertieren, die Sie dann mit JSONObject umbrechen können.

Zum Beispiel, hier ist, wie ich ein reguläres Dokument erstellen werden:

BasicDBObject obj = new BasicDBObject(); 
obj.put("name", "Matt"); 
obj.put("date", new Date()); 

Dann eine String Darstellung des Objekts zu erhalten, rufen Sie einfach:

String bsonString = obj.toString(); 

es Wrap mit einem JSONObject und erhalte das Datumattribut, das es in einem BSON-konformen Format zurückgeben soll.

JSONObject newObject = new JSONObject(bsonString); 
System.out.println(newObject.get("date")); 

Die resultierende Ausgabe ist so etwas wie:

{"$date":"2012-08-10T05:22:53.872Z"}