15

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.

Jonik
  • 80,077
  • 70
  • 264
  • 372
Maxim Veksler
  • 29,272
  • 38
  • 131
  • 151

5 Answers5

7

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"}
Matthew Quiros
  • 13,385
  • 12
  • 87
  • 132
2

The BSON site is pointing at this

If you want to use it from MongoDB, take a look at this example

Bozho
  • 588,226
  • 146
  • 1,060
  • 1,140
1

In order to get our Model in MongoDB we used google gson to convert our model into JSON first and then we used the JSON util parse method from MongoDB to parse our generated JSON string to a DBObject which you can put in your MongoDB. I don't know about performance to be honest.

Jeroen Rosenberg
  • 4,552
  • 3
  • 27
  • 39
1

There is also a rather new BSON4Jackson project, which allows one to use Jackson for handling BSON data. This means full data binding (to/from POJOs), tree model, even streaming (incremental) reading/writing to degree it can be done with BSON format.

StaxMan
  • 113,358
  • 34
  • 211
  • 239
  • I hate Jackson. Its API just screams "overcomplication". Crockford's library is the best and the smallest. – Ian Macalinao Jul 11 '12 at 00:04
  • 4
    You are entitled to your ill-conceived opinion. Toy libs like org.json's reference implementation are probably a good fit for you. – StaxMan Jul 11 '12 at 05:51
1

There is also ebson. I've not tried it...

Ricardo Pardini
  • 922
  • 7
  • 17