0

I have a BSON file, is there any way I can tell Json.Net to deserialise that to a dynamic object like in this example for JSON?

Community
  • 1
  • 1
joshcomley
  • 27,342
  • 23
  • 104
  • 144

1 Answers1

0

Yes, just deserialize as type dynamic (or JToken or ExpandoObject) following the instructions in Deserialize from BSON:

        dynamic result;

        using (var stream = new MemoryStream(byteArray))
        using (var reader = new BsonReader(stream))
        {
            var serializer = JsonSerializer.CreateDefault();
            result = serializer.Deserialize<dynamic>(reader); // Or ExpandoObject or JToken
        }

Prototype fiddle.

To stream directly from a file, use a FileStream:

        string path = "bsonData.bson";  // Or whatever
        dynamic result;

        using (var stream = File.OpenRead(path)) 
        using (var reader = new BsonReader(stream))
        {
            var serializer = JsonSerializer.CreateDefault();
            result = serializer.Deserialize<dynamic>(reader); // Or ExpandoObject or JToken
        }
dbc
  • 91,441
  • 18
  • 186
  • 284