So konvertieren Sie JSON mit Json.NET in BSON

So konvertieren Sie JSON mit Json.NET in BSON

Der BsonWriter von Newtonsoft.Json ist veraltet.

Sie müssen ein neues Nuget-Paket namens Json.NET BSON hinzufügen (Suchen Sie einfach nach newtonsoft.json.bson ) und arbeiten mit BsonDataWriter und BsonDataReader statt BsonWriter und BsonReader :

public static string ToBson<T>(T value)
{
    using (MemoryStream ms = new MemoryStream())
    using (BsonDataWriter datawriter = new BsonDataWriter(ms))
    {
        JsonSerializer serializer = new JsonSerializer();
        serializer.Serialize(datawriter, value);
        return Convert.ToBase64String(ms.ToArray());
    }

}

public static T FromBson<T>(string base64data)
{
    byte[] data = Convert.FromBase64String(base64data);

    using (MemoryStream ms = new MemoryStream(data))
    using (BsonDataReader reader = new BsonDataReader(ms))
    {
        JsonSerializer serializer = new JsonSerializer();
        return serializer.Deserialize<T>(reader);
    }
}

bei Verwendung von json In meinem Projekt ist mir aufgefallen, dass es einfache und süße Möglichkeiten gibt, json zu konvertieren in einen bson Dokument.

 string json = "{\"Name\":\"Movie Premiere\"}";
 BsonDocument document = BsonDocument.Parse(json);

jetzt können Sie document verwenden als bson überall.

Hinweis- Ich verwende diesen document in MongoDb einzufügen Datenbank.

Ich hoffe, dies wird Ihnen helfen.


Ich denke, das wird Ihnen genügen

MongoDB.Bson.BsonDocument BSONDoc
= MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(json);

Sie können sich auch Serialize to BSON and C# – Converting JSON string to BSON document

ansehen