kreta/Kreta.Core/JsonConverter/StringTrimConverter.cs
2024-03-13 00:33:46 +01:00

39 lines
945 B
C#

using System;
using Newtonsoft.Json;
namespace Kreta.Core.JsonConverter
{
public class StringTrimConverter : JsonConverter<string>
{
public override string ReadJson(JsonReader reader, Type objectType, string existingValue, bool hasExistingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.String)
{
var value = (string)reader.Value;
if (string.IsNullOrWhiteSpace(value))
{
return null;
}
return value.Trim();
}
return null;
}
public override void WriteJson(JsonWriter writer, string value, JsonSerializer serializer)
{
if (value is null)
{
writer.WriteNull();
}
else
{
writer.WriteValue(value);
}
}
}
}