<PackageReference Include="Newtonsoft.Json" Version="6.0.1" />

BsonObjectIdConverter

Converts a BsonObjectId to and from JSON and BSON.
using Newtonsoft.Json.Bson; using Newtonsoft.Json.Utilities; using System; using System.Globalization; namespace Newtonsoft.Json.Converters { public class BsonObjectIdConverter : JsonConverter { public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { BsonObjectId bsonObjectId = (BsonObjectId)value; BsonWriter bsonWriter = writer as BsonWriter; if (bsonWriter != null) bsonWriter.WriteObjectId(bsonObjectId.Value); else writer.WriteValue(bsonObjectId.Value); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.TokenType != JsonToken.Bytes) throw new JsonSerializationException("Expected Bytes but got {0}.".FormatWith(CultureInfo.InvariantCulture, reader.TokenType)); byte[] value = (byte[])reader.Value; return new BsonObjectId(value); } public override bool CanConvert(Type objectType) { return (object)objectType == typeof(BsonObjectId); } } }