Decoding data from BSON using Json.NET
Using Json.NET, decoding BSON is the opposite of encoding; given a class that describes the data to decode and a blob of binary data, invoke a reader to read the data.
Getting ready
Of course, you need a reference to the Json.NET assembly in your project in order to do this. See recipe How to Deserialize an object using Json.NET in Chapter 7, Using JSON in a Type-safe Manner, to learn how to add a reference to Json.NET in your application using NuGet.
How to do it…
Starting with a stream, you'll use a BsonReader with a JsonSerializer to deserialize the BSON. Assuming data is byte[] of BSON data:
MemoryStream ms = new MemoryStream(data);
using (var reader = new Newtonsoft.Json.Bson.BsonReader(ms))
{
var serializer = new Newtonsoft.Json.JsonSerializer();
var r = serializer.Deserialize<Record>(reader);
// use r
}How it works…
We create MemoryStream from the incoming data, which we use with BsonReader to actually read the data from the stream. The...