How to change default json converter in mvc5 project

Viewed 88

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?

0 Answers
Related