在 .NET core Webapi 中,默认情况下,返回 json 是驼峰式大小写,可以格式化为返回标题大小写。没关系。是否可以完全忽略大小写。意思是,返回的 json 名称和属性值应该是从服务返回的。不应用大小写。是否可能?例如,如果返回 json 对象名称是“jsonname”,它应该返回相同的而不是“jsonName”
问问题
342 次
1 回答
0
您可以自定义DefaultContractResolver
:
public class LowercaseContractResolver : DefaultContractResolver
{
protected override string ResolvePropertyName(string propertyName)
{
return propertyName;
}
}
在 Startup.cs 中注册以进行全局序列化:
public void ConfigureServices(IServiceCollection services)
{
JsonConvert.DefaultSettings = () => new JsonSerializerSettings
{
ContractResolver = new LowercaseContractResolver()
};
services.AddMvc();
}
你可以像下面这样测试:
[HttpGet]
public ActionResult<string> Get()
{
var user = new User()
{
Id = 1,
Name = "aa",
MyAddress = "sad"
};
var data = JsonConvert.SerializeObject(user);
return data;
}
或者您可以为输出 json 设置如下:
return new JsonResult(user, new JsonSerializerSettings { ContractResolver = new LowercaseContractResolver() });
于 2020-01-09T05:38:55.940 回答