Как сделать вывод о выходе Json в поддержку Owin?
Я использую Owin для создания самостоятельного сервера, который поддерживает как запросы файлов, так и веб-api. Но вывод для запросов веб-api всегда в формате xml. Как настроить owin для вывода в json?
Код выглядит следующим образом:
class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseFileServer(new FileServerOptions()
{
RequestPath = PathString.Empty,
FileSystem = new PhysicalFileSystem(@".\files")
});
// set the default page
app.UseWelcomePage(@"/index.html");
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute
(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
app.UseWebApi(config);
}
}
Ответы
Ответ 1
Я сам нашел ответ. Все, что нужно сделать, это добавить форматировщик json, как показано ниже:
config.Formatters.Clear();
config.Formatters.Add(new JsonMediaTypeFormatter());
config.Formatters.JsonFormatter.SerializerSettings =
new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
Если вам нужно преобразовать enum в строку, добавьте StringEnumConverter в настройки.
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new StringEnumConverter());