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