To trim all incoming string values โโin a web API, you can define Newtonsoft.Json.JsonConverter :
class TrimmingConverter : JsonConverter { public override bool CanConvert(Type objectType) { return objectType == typeof(string); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.TokenType == JsonToken.String) if (reader.Value != null) return (reader.Value as string).Trim(); return reader.Value; } public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var text = (string)value; if (text == null) writer.WriteNull(); else writer.WriteValue(text.Trim()); } }
Then register it on Application_Start . The convention for this is in FormatterConfig , but you can also do this in Application_Start Global.asax.cs . Here it is in FormatterConfig :
public static class FormatterConfig { public static void Register(HttpConfiguration config) { config.Formatters.JsonFormatter.SerializerSettings.Converters .Add(new TrimmingConverter()); } }
source share