首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么使用Newtonsoft Json的camelcasing没有序列化程序就不能工作?

为什么使用Newtonsoft Json的camelcasing没有序列化程序就不能工作?
EN

Stack Overflow用户
提问于 2019-12-29 20:42:22
回答 1查看 1.1K关注 0票数 1

我有一个对象,我想序列化到JSON并使用camelcase。我有一个.Net Core3WebApi应用程序,我的启动文件中有以下服务注册:

代码语言:javascript
复制
services.AddControllersWithViews();
services.AddControllers().AddNewtonsoftJson(options =>
{
    options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
});

在我的控制器中,我有以下内容:

代码语言:javascript
复制
var js = JObject.FromObject(obj);

现在,这个序列化的结果如下:

代码语言:javascript
复制
{
 StartRow: 1,
 EndRow: 2
}

当我实例化一个JsonSerializer并将它作为第二个参数传递时,我得到了预期的camelcase格式:

代码语言:javascript
复制
{
 startRow: 1,
 endRow: 2
}

以下是代码:

代码语言:javascript
复制
var serializer = new JsonSerializer()
        {
            ContractResolver = new CamelCasePropertyNamesContractResolver()
        };
var js = JObject.FromObject(obj, serializer);

这意味着我必须对每个控制器都有一个序列化程序。

我在想我是不是漏掉了什么东西还是记错了什么。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-30 02:22:07

试试这个:

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services)
{
    //do your stuff..
    services.AddControllers().AddNewtonsoftJson();
    JsonConvert.DefaultSettings = () => new JsonSerializerSettings
    {
        ContractResolver = new CamelCasePropertyNamesContractResolver()
    };
    //do your stuff..
}

参考资料:

将PascalCase Newtonsoft.Json JObject序列化为camelCase

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59523105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档