2010-09-07 13 views

risposta

2

Il BSON site è puntato verso this

Se si desidera utilizzarlo da MongoDB, dare un'occhiata a this example

+2

che avrei potuto prendere la parte di codifica da Mongo e renderlo una libreria esterna. Speravo da qualcosa di più "maturo", grazie per il suggerimento. –

+2

a dire il vero l'esempio di mongoDB è un po 'ritardato! perché non potrebbe essere facile come la conversione JSON? – nightograph

+3

La risposta ha un collegamento interrotto – seinecle

1

Al fine di ottenere il nostro modello in MongoDB abbiamo usato google GSON per convertire il nostro modello in JSON per prima cosa abbiamo usato lo JSON util parse method from MongoDB per analizzare la nostra stringa JSON generata su un DBObject che puoi inserire nel tuo MongoDB. Non conosco le prestazioni per essere onesto.

+0

Il problema con questo approccio è che si perderanno alcuni tipi di dati (come Data). – Enrichman

1

C'è anche un nuovo progetto BSON4Jackson, che consente di utilizzare Jackson per gestire i dati BSON. Ciò significa che l'associazione completa dei dati (da/per POJO), il modello ad albero, persino lo streaming (incrementale) di lettura/scrittura per gradi può essere fatto con il formato BSON.

+0

Odio Jackson. La sua API si limita a gridare "overcomplication". La biblioteca di Crockford è la migliore e la più piccola. –

+4

Hai diritto al tuo parere mal concepito. Le librerie giocattolo come l'implementazione di riferimento di org.json sono probabilmente adatte a te. – StaxMan

2

C'è anche ebson. Non l'ho provato ...

6

È possibile utilizzare il driver MongoDB per Java per memorizzare un oggetto BSON, quindi convertirlo in un String che è possibile quindi eseguire il wrapping con JSONObject.

Ad esempio, ecco come creerò un documento regolare:

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

Poi, per ottenere un String rappresentazione dell'oggetto, è sufficiente chiamare:

String bsonString = obj.toString(); 

avvolgerlo con un JSONObject e ottenere l'attributo date, che dovrebbe restituirlo in un formato conforme a BSON.

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

L'output risultante è qualcosa di simile:

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