2010-09-07 22 views

Respuesta

2

El BSON site está señalando en this

Si desea utilizarlo desde MongoDB, echar un vistazo a this example

+2

supongo que podría tomar la parte de codificación de Mongo y convertirla en una biblioteca externa. Esperaba algo más "maduro", gracias por la propina. –

+2

para ser honesto, ¡el ejemplo de mongoDB es un poco retardado! ¿Por qué no podría ser tan fácil como la conversión json? – nightograph

+3

La respuesta tiene un enlace roto – seinecle

1

Con el fin de conseguir nuestro Modelo en MongoDB utilizamos Google GSON para convertir nuestro modelo en JSON primero y luego usamos el JSON util parse method from MongoDB para analizar nuestra cadena JSON generada a un objeto DBObject que puede poner en su MongoDB. No sé sobre el rendimiento para ser honesto.

+0

El problema con este enfoque es que perderá algunos tipos de datos (como Fecha). – Enrichman

1

También hay un proyecto bastante nuevo BSON4Jackson, que permite usar Jackson para manejar datos BSON. Esto significa el enlace de datos completo (a/desde POJO), el modelo de árbol, incluso la lectura/escritura en tiempo real (incremental) hasta el grado en que se puede hacer con el formato BSON.

+0

Odio Jackson. Su API simplemente grita "sobrecomplicación". La biblioteca de Crockford es la mejor y la más pequeña. –

+4

Tiene derecho a su opinión mal concebida. Las libs de juguete como la implementación de referencia de org.json son probablemente una buena opción para ti. – StaxMan

2

También hay ebson. No lo he intentado ...

6

Puede usar el controlador MongoDB para Java para almacenar un objeto BSON, luego conviértalo a un String que luego puede envolver con JSONObject.

Por ejemplo, así es como voy a crear un documento normal:

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

Entonces, para obtener una representación String del objeto, simplemente llame a:

String bsonString = obj.toString(); 

envolverlo con una JSONObject y obtenga el atributo de fecha, que debe devolverlo en un formato compatible con BSON.

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

La salida resultante es algo así como:

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