2010-09-07 6 views

Répondre

2

Le BSON site montre du doigt this

Si vous voulez l'utiliser de MongoDB, jetez un oeil à this example

+2

suppose que je pourrais prendre la partie codante de Mongo et en faire une bibliothèque externe. J'espérais de quelque chose de plus "mature", merci pour le pourboire. –

+2

pour être honnête l'exemple de mongoDB est un peu retardé! pourquoi il ne pourrait pas être aussi facile que la conversion JSON? – nightograph

+3

La réponse a un lien brisé – seinecle

1

Afin d'obtenir notre modèle MongoDB nous avons utilisé Google gson pour convertir notre modèle en JSON d'abord, puis nous avons utilisé le JSON util parse method from MongoDB pour analyser notre chaîne JSON générée à un DBObject que vous pouvez mettre dans votre MongoDB. Je ne connais pas la performance pour être honnête.

+0

Le problème avec cette approche est que vous allez perdre certains types de données (tels que Date). – Enrichman

1

Il existe également un nouveau projet BSON4Jackson, qui permet d'utiliser Jackson pour gérer les données BSON. Cela signifie une liaison de données complète (de/vers POJOs), un modèle d'arborescence, même en lecture en continu (incrémentielle) en lecture/écriture au degré, cela peut être fait avec le format BSON.

+0

Je déteste Jackson. Son API crie juste "trop ​​de complication". La bibliothèque de Crockford est la meilleure et la plus petite. –

+4

Vous avez droit à votre opinion mal conçue. Les bibliothèques de jouets comme la mise en œuvre de référence d'org.json sont probablement un bon choix pour vous. – StaxMan

2

Il existe également ebson. Je ne l'ai pas essayé ...

6

Vous pouvez utiliser le pilote MongoDB pour Java pour stocker un objet BSON, puis le convertir en String que vous pouvez ensuite recouvrir avec JSONObject.

Par exemple, voici comment je vais créer un document régulier:

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

Ensuite, pour obtenir une représentation String de l'objet, appelez simplement:

String bsonString = obj.toString(); 

envelopper avec un JSONObject et obtenez l'attribut de date, qui devrait le renvoyer dans un format compatible BSON.

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

La sortie résultante est quelque chose comme:

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