我正在ASP.NET核心/Web/Range2上运行一个ASP.NET课程,我已经实现了ASP.NET部分,但是由于任何原因,返回的JSON的变量名都被降低了。
返回的JSON格式如下..。
[
{"id":1,"name":"Bowler","color":"black","count":1},
{"id":2,"name":"Fedora","color":"red","count":1},
{"id":3,"name":"Baseball Cap","color":"blue","count":3}
]我期待着..。
[
{"Id":1,"Name":"Bowler","Color":"black","Count":1},
{"Id":2,"Name":"Fedora","Color":"red","Count":1},
{"Id":3,"Name":"Baseball Cap","Color":"blue","Count":3}
]基于…的C#模型。
namespace HatCollection.Models
{
public class Hat
{
public int Id { get; set; }
public string Name { get; set; }
public string Color { get; set; }
public int Count { get; set; }
}
}我甚至还用[DataMember(Name = "Id")]来装饰这些房产,只是为了确保这并不重要。
在偶然的情况下,它与控制器中的动作和实例变量相关.
private static readonly List<Hat> MyHats = new List<Hat>
{
new Hat {Id = 1, Name = "Bowler", Color = "black", Count = 1 },
new Hat {Id = 2, Name = "Fedora", Color = "red", Count = 1 },
new Hat {Id = 3, Name = "Baseball Cap", Color = "blue", Count = 3 }
};
[HttpGet]
public IEnumerable<Hat> Get()
{
return MyHats;
}如何关闭camelCase功能,以便ASP.NET核心在不更改属性名称的情况下返回它们?
发布于 2016-08-02 18:54:19
在ASP.NET Core <3.0中,JSON属性默认为camelCased (每个本公告)。
您可以通过替换
services.AddMvc();使用
services
.AddMvc()
.AddJsonOptions(opt => opt.SerializerSettings.ContractResolver
= new DefaultContractResolver());在Startup.cs文件中。您必须将using Newtonsoft.Json.Serialization;添加到文件的顶部。
在DefaultContractResolver就位后,属性名称将逐字表示在JSON输出中。不需要DataMember属性。
发布于 2019-09-27 12:56:45
在Asp.Net Core3.0中,有些事情发生了变化。对于camelCase来说,什么都不做。对于PascalCase或其他设置样式使用。
services.AddMvc(setupAction=> {
setupAction.EnableEndpointRouting = false;
}).AddJsonOptions(jsonOptions =>
{
jsonOptions.JsonSerializerOptions.PropertyNamingPolicy = null;
})
.SetCompatibilityVersion(CompatibilityVersion.Version_3_0);在Startup.cs ConfigureServices部分
发布于 2019-11-25 13:12:35
对于那些需要一个关于Api项目中没有Mvc服务的PascalCase的解决方案的人,您应该在AddControllers服务之后添加这个
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers().AddJsonOptions(jsonOptions =>
{
jsonOptions.JsonSerializerOptions.PropertyNamingPolicy = null;
} ;
}https://stackoverflow.com/questions/38728200
复制相似问题