如何在ResponseType属性(asp.net webapi)中设置json格式?

时间:2015-01-30 13:51:35

标签: json asp.net-web-api json.net

我的控制器的动作返回IHttpActionResult。在项目中我使用snake_case作为json格式,所以我将自定义ContractResolver添加到json设置:

JsonSerializerSettings = new JsonSerializerSettings { ContractResolver = new SnakeCasePropertyNamesContractResolver() };

这就是我格式化回复的方式:

return new JsonResult<UserInfoModel>(new UserInfoModel(user.UserInfo), JsonSerializerSettings, Encoding.Unicode, this);

对于自动生成的文档,我将[ResponseType]属性添加到方法中。但文档使用camelCase格式作为响应exmaples。

如何在ResponseType属性中设置json格式?

2 个答案:

答案 0 :(得分:1)

您是否尝试过global.asax.vb中的以下内容:

    GlobalConfiguration.Configuration.Formatters.Clear()
    GlobalConfiguration.Configuration.Formatters.Add(New JsonMediaTypeFormatter())

    WebApiConfig.Register(GlobalConfiguration.Configuration)
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters)

答案 1 :(得分:0)

找到解决方案:

添加

var jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().First();
jsonFormatter.SerializerSettings.ContractResolver = new SnakeCasePropertyNamesContractResolver();
config.Formatters.Add(new JsonMediaTypeFormatter());

到WebApiConfig.cs