Skip to content

Instantly share code, notes, and snippets.

@najathi
Created August 3, 2022 08:57
Show Gist options
  • Save najathi/23b7bbba45583f357e5659a5e946d031 to your computer and use it in GitHub Desktop.
Save najathi/23b7bbba45583f357e5659a5e946d031 to your computer and use it in GitHub Desktop.
C# JSON Serialize changes String to Number type
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
public class StringToLongConverter : JsonConverter
{
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
JToken jt = JValue.ReadFrom(reader);
return jt.Value<string>();
}
public override bool CanConvert(Type objectType)
{
return typeof(System.String).Equals(objectType);
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
serializer.Serialize(writer, long.Parse(value.ToString()));
}
}
@najathi
Copy link
Author

najathi commented Aug 3, 2022

Use it like this: (In model class)

[JsonConverter(typeof(StringToLongConverter))]
public string DateOfArrival { get => dateOfArrival; set => dateOfArrival = value; }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment