Andreas Pehnack
Everybody knows JSON (JavaScript Object Notation), the simple data interchange format. It allows to exchange data structures between various languages like Java, Ruby, Python, C# and, of course, JavaScript.
Since JSON is a text format that can be quite verbose, BSON was developed as a binary representation of JSON documents. BSON not only supports the well-known data structures (arrays and name/value pairs) but also has extensions like a Date type.
There is now a BSON grammar available for Synalyze It! and Hexinator that allows to decode BSON files easily.
If you look for generic binary formats that allow to store data structures you may also be interested in Google protocol buffers or Apache Thrift. Both are supported by many programming languages and encode/decode data structures in a very compact form. Opposed to BSON these formats are more driven by a schema describing the structure and its contents.