使用Microsoft.AspNetCOre.OData 7.0.1
,如果我有一个不在数据库中的Model列表,则JSON结果总是以PascalCase而不是camelCase的形式返回。如何获得我的清单为camelCase?
下面的相对示例:
我的模型不在数据库中。
public class Widget
{
public string Id { get; set; }
public string Name { get; set; }
}
我的控制器
[Route("api/[controller]")]
public class WidgetController : ODataController
{
[EnableQuery()]
public IActionResult GetWidgets()
{
// Create list of ten Widgets
var widgetsList = new List<Widget>();
for(var i = 0; i < 10; i++) {
widgetsList.Add(new Widget() { Id = i, Name = $"Widget {i}" });
}
return this.Ok(widgetsList);
}
}
/ api / GetWidgets?$ select = name以以下格式返回
{ Name: "Widget" }
答案 0 :(得分:2)
即使Widget
不在数据库中,您也可以将其添加到实体数据模型(EDM)中。 EDM可能将骆驼案作为惯例。 Widget
将遵守该约定。
var builder = new ODataConventionModelBuilder();
builder.EnableLowerCamelCase();
builder.EntitySet<Widget>("Widgets");
_edmModel = builder.GetEdmModel();
这里是sample OData fork of the odata/webapi repository。
在ConfigureServices
中设置MVC JSON选项。现在,JSON响应将采用驼峰格式。
services
.AddMvc()
.AddJsonOptions(options => {
options.SerializerSettings.ContractResolver =
new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
});