是否可以使用Json.Net将BSON文件反序列化为动态对象?

时间:2016-02-02 12:03:38

标签: json.net bson

我有一个BSON文件,有什么方法可以告诉Json.Net将其反序列化为像this example for JSON这样的动态对象吗?

1 个答案:

答案 0 :(得分:0)

是的,只需按照JToken中的说明反序列化为dynamic(或ExpandoObjectDeserialize 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
        }

原型fiddle

要直接从文件流式传输,请使用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
        }