【发布时间】:2019-12-29 20:42:22
【问题描述】:
我有一个对象,我想序列化为 JSON 并使用 camelcase。 我有一个 .Net Core 3 Web Api 应用程序,在我的启动文件中我有以下服务注册:
services.AddControllersWithViews();
services.AddControllers().AddNewtonsoftJson(options =>
{
options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
});
在我的控制器中,我有以下内容:
var js = JObject.FromObject(obj);
现在,这个序列化的结果是这样的:
{
StartRow: 1,
EndRow: 2
}
当我实例化一个 JsonSerializer 并将其作为第二个参数传递时,我得到了预期的驼峰格式:
{
startRow: 1,
endRow: 2
}
代码如下:
var serializer = new JsonSerializer()
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
var js = JObject.FromObject(obj, serializer);
这意味着我必须为每个控制器配备一个序列化程序。
我想知道我是否遗漏了什么或注册错误。
谢谢。
【问题讨论】:
-
您的服务注册配置 Web API 如何序列化 HTTP 请求和响应中的 JSON 对象。它不影响静态
JObject.FromObject方法。 -
如果您想全局设置序列化程序设置,请参阅Set default global json serializer settings。
标签: c# json asp.net-core json.net