Если вы хотите преобразовать свое экспоненциальное число в JsonConverter
, тогда
public class MyClassName
{
[JsonConverter(typeof(JsonExponentialConverter))]
public decimal Amount { get; set; }
}
Это конвертер json, который преобразует ваше экспоненциальное число в десятичное
public class JsonExponentialConverter : JsonConverter
{
public override bool CanRead { get { return true; } }
public override bool CanConvert(Type objectType)
{
return true;
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
serializer.Serialize(writer, value);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
decimal amount = 0;
if (decimal.TryParse(reader.Value.ToString(), NumberStyles.Any, CultureInfo.InvariantCulture, out amount))
{
return amount;
}
return amount;
}
}
И вызов выше класса с JSES десериализатором, как
public class Program
{
static void Main(string[] args)
{
var json = @"{'Amount':'1.096E8'}";
var amount = JsonConvert.DeserializeObject<MyClassName>(json);
}
}
Выход:
