I want to learn how to change default json converter of an asp.net mvc5 project? I tried to find answers but I could not.
Here is my class
[JsonConverter(typeof(MyObjectConverter))]
public class MyObject
{
public string Property1 {get; set;}
public string Property2 {get; set;}
}
Here is my custom json converter inherited from Newtonsoft.Json.JsonConverter
public class MyObjectConverter : JsonConverter
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
//my serialization code
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
//my deserialization code
}
public override bool CanConvert(Type objectType)
{
return objectType == typeof(MyObjectConverter);
}
}
This is my controller
public class MyController : Controller
{
[HttpPost]
public void Save(MyObject Item)
{
//Save method
}
[HttpPost]
public string Get()
{
var Item = new MyObject{
Property1 = "abc",
Property2 = "def"
};
return Newtonsoft.Json.JsonConvert.SerializeObject(Item);
}
}
Here is my problem. When I call Get method on the controller, my custom json converter works. However when I call Save method, my custom json converter does not work. I believe, this is because mvc5 does not use Newtonsoft.Json as default controller. How can I change it?