我有一个C# .NET WebAPI项目,我所有的API都是这样的:
[HttpGet]
public IHttpActionResult Get()
{
var myComplexObject = BuildResponse();
return Ok(myComplexObject);
}Ok()函数目前负责将响应对象序列化为JSON字符串。我如何告诉框架使用自定义的JSON序列化程序而不是默认的?
发布于 2017-02-09 19:18:24
如果希望对所有请求使用自定义序列化程序,则在WebApiConfig.cs中配置HttpConfiguration
// Add custom formatter - add at the top so it fires first!
// This leaves the old one in place so JsonValue/JsonObject/JsonArray still are handled
config.Formatters.Insert(0, new CustomJsonNetFormatter());这里有一篇关于如何制作你自己的serailizer的文章
发布于 2017-02-09 19:23:45
通过调用OK()方法,可以创建新的OkNegotiatedContentResult。从那里你可以放入你的JsonSerializerSettings。
实际上,当您调用OK(T content)方法时,它将帮助您创建新的OkNegotiatedContentResult对象。它会在那里包装你的响应对象。所以你可以直接使用它。希望能有所帮助。
https://stackoverflow.com/questions/42134875
复制相似问题