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

VersionConverter

Converts a Version to and from a string (e.g. "1.2.3.4").
using Newtonsoft.Json.Utilities; using System; using System.Globalization; namespace Newtonsoft.Json.Converters { public class VersionConverter : JsonConverter { public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (value == null) writer.WriteNull(); else { if (!(value is Version)) throw new JsonSerializationException("Expected Version object value"); writer.WriteValue(value.ToString()); } } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.TokenType == JsonToken.Null) return null; if (reader.TokenType == JsonToken.String) try { return new Version((string)reader.Value); } catch (Exception ex) { throw JsonSerializationException.Create(reader, "Error parsing version string: {0}".FormatWith(CultureInfo.InvariantCulture, reader.Value), ex); } throw JsonSerializationException.Create(reader, "Unexpected token or value when parsing version. Token: {0}, Value: {1}".FormatWith(CultureInfo.InvariantCulture, reader.TokenType, reader.Value)); } public override bool CanConvert(Type objectType) { return (object)objectType == typeof(Version); } } }