38 lines
1022 B
C#
38 lines
1022 B
C#
using Newtonsoft.Json;
|
|
|
|
namespace YLErp.Converter2
|
|
{
|
|
public class QuotedFloatConverter : JsonConverter<float>
|
|
{
|
|
public override float ReadJson(JsonReader reader, Type objectType, float existingValue, bool hasExistingValue, JsonSerializer serializer)
|
|
{
|
|
|
|
if (reader.TokenType == JsonToken.Null)
|
|
{
|
|
return existingValue;
|
|
}
|
|
else
|
|
{
|
|
var str = reader.Value?.ToString();
|
|
if (string.IsNullOrEmpty(str))
|
|
{
|
|
return existingValue;
|
|
}
|
|
|
|
if (float.TryParse(str, out var number))
|
|
{
|
|
return number;
|
|
}
|
|
else
|
|
{
|
|
return existingValue;
|
|
}
|
|
}
|
|
}
|
|
|
|
public override void WriteJson(JsonWriter writer, float value, JsonSerializer serializer)
|
|
{
|
|
writer.WriteValue(value);
|
|
}
|
|
}
|
|
} |