37 lines
1011 B
C#
37 lines
1011 B
C#
using Newtonsoft.Json;
|
|
|
|
namespace YLErp.Converter2
|
|
{
|
|
public class QuotedInt32Converter : JsonConverter<int>
|
|
{
|
|
public override int ReadJson(JsonReader reader, Type objectType, int 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 (int.TryParse(str, out var number))
|
|
{
|
|
return number;
|
|
}
|
|
else
|
|
{
|
|
return existingValue;
|
|
}
|
|
}
|
|
}
|
|
|
|
public override void WriteJson(JsonWriter writer, int value, JsonSerializer serializer)
|
|
{
|
|
writer.WriteValue(value);
|
|
}
|
|
}
|
|
} |