Is a binary JSON javascript library available for browsers?

Lorenz Lo Sauer picture Lorenz Lo Sauer · Sep 24, 2011 · Viewed 20.4k times · Source

In order for efficient server side parsing I am looking into a BSON solution directly for the browser javascript environment. The idea is to utilize the entire ASCII space by means of binary websockets. Any suggestions?

(Any nodejs suggestions are welcome as well)

See also: http://bsonspec.org/

Answer

jriggins picture jriggins · Feb 16, 2013

For what it's worth, it appears that the MongoDB team now have a supported Javascript BSON project:

https://github.com/mongodb/js-bson

I'm no expert with the library, but the project claims to work in both Node and the browser. Below is a modified sample from their site:

<head>
  <!-- Originally https://raw.github.com/mongodb/js-bson/master/browser_build/bson.js -->
  <!-- But downloaded and hosted locally -->
  <script src="./bson.js"></script>
</head>
<body onload="start();">
<script>
  function start() {
    var BSON = bson().BSON;
    var Long = bson().Long;

    var doc = {
      oid: bson().ObjectID(),
      long: Long.fromNumber(100),
      date: new Date(),
      string: "js-bson sample",
      obj: { 
        string: "Object within an object"
      }
    }
    console.log("doc %o", doc);

    // Serialize a document
    var data = BSON.serialize(doc, false, true, false);
    console.log("data %o", data);

    // De serialize it again
    var doc_2 = BSON.deserialize(data);
    console.log("doc_2 %o", doc_2);
  }
</script>
</body>

Below are my results in Chrome:

enter image description here