Reputation: 14747
There're a lot of resources on how to substitute the Json.NET library as the default serializer in ASP.NET MVC apps, but, for the life of me, I can't find a single resource on how to set it as the default deserializer.
To illustrate that a bit, here's some template code:
// how to use Json.NET when deserializing
// incoming arguments?
V
public ActionResult SomeAction ( Foo foo ) {
// this piece of code has lots of resources
// on how to override the default Javascript serializer
return Json(new Bar());
}
How do I tell my application to use Json.NET when deserializing incoming parameters in controller actions, say, from a jQuery AJAX call?
$.ajax({
type : 'POST',
data : { foo : 'bar' }
});
I've tried adapting MediaTypeFormatters
into my code by adjusting this resource from Rick Strahl, but that didn't work either. Note that I'm not in a WebAPI environment --- but I expect that one solution that works on a normal Controller
should work (albeit with minimal adjustments) in an ApiController
.
Upvotes: 11
Views: 3810
Reputation: 3338
You'll need to implement a custom ValueProviderFactory and remove the standard JsonValueProviderFactory.
There's some example code here: http://json.codeplex.com/discussions/347099 however reading through the comments, i'm not 100% sure that it will properly handle dictionaries.
Upvotes: 2