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
  • 28,099
  • 24
  • 107
  • 147

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
  • 104,963
  • 20
  • 228
  • 340