asp.net-core-webapi - 忽略 .NET core 2.2 WebAPI 中响应对象的任何特定大小写
问题描述
在 .NET core Webapi 中,默认情况下,返回 json 是驼峰式大小写,可以格式化为返回标题大小写。没关系。是否可以完全忽略大小写。意思是,返回的 json 名称和属性值应该是从服务返回的。不应用大小写。是否可能?例如,如果返回 json 对象名称是“jsonname”,它应该返回相同的而不是“jsonName”
解决方案
您可以自定义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() });
推荐阅读
- haskell - 我应该将 ReaderT 与 StateT 一起使用还是仅使用 StateT monad?
- python - Post.get in django 和 html 表单方法
- avro - 数据验证和类生成系统(Avro vs Json Schema vs OpenAPI)
- ios - 向 AppsFlyer 发送服务器到服务器事件
- docker - Ansible - 使用 apt 模块后,Docker 的存储库密钥丢失
- javascript - 如何开玩笑地模拟 lodash 的油门功能?
- java - 使用 Spring Data Redis 访问 Redis 连接池
- javascript - AutoCAD格式转WEB格式
- r - 在 ggplot2 中,重新排序未按预期工作
- mysql - 有没有办法返回所有记录,其中特定列上的下一条记录的值来自上一条记录 + 1?