BSON library for java?

Maxim Veksler picture Maxim Veksler · Sep 7, 2010 · Viewed 40.8k times · Source

We have good support for JSON in java http://blog.locut.us/main/2009/10/14/which-is-the-best-java-json-library.html but what about BSON.

What library do you know that provides BSON support for java? It should obviously be efficient in runtime.

Answer

MLQ picture MLQ · Jul 28, 2012

You can use the MongoDB driver for Java to store a BSON object, then convert that to a String which you can then wrap with JSONObject.

For example, here's how I'll create a regular document:

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

Then, to get a String representation of the object, simply call:

String bsonString = obj.toString();

Wrap it with a JSONObject and get the date attribute, which should return it in a BSON-compliant format.

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

The resulting output is something like:

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