【问题标题】:asp.net core 1.0 web api use camelcaseasp.net core 1.0 web api使用camelcase
【发布时间】:2016-07-01 07:33:33
【问题描述】:

RC2 上,相同的代码返回带有驼峰大小写的 json 格式。在 netcore 1.0 发布后,我开始了新项目,并且相同的代码以小写形式返回 json。

尝试了多种解决方案,但都没有奏效 web-api-serialize-properties-starting-from-lowercase-letter

【问题讨论】:

    标签: c# json json.net asp.net-core-mvc asp.net-core-1.0


    【解决方案1】:
    services
        .AddMvc()
        .AddJsonOptions(options =>
        {
            options.SerializerSettings.ContractResolver
                = new Newtonsoft.Json.Serialization.DefaultContractResolver();
        });
    

    这使 JSON 对象的名称与 .NET 类属性保持一致。

    【讨论】:

    • 这需要什么命名空间/引用。我看不到“AddJsonOptions”
    • 它的 MVC6.namespace Microsoft.Extensions.DependencyInjection // 通过 Microsoft.Extensions.DependencyInjection.IMvcBuilder 配置 MVC 的扩展方法。类 MvcJsonMvcBuilderExtensions
    • 谢谢!!我有同样的问题,这个工作正常
    • 工作正常。谢谢。
    【解决方案2】:

    您可以通过这种方式配置 JSON 行为:

    public void ConfigureServices(IServiceCollection services)  
      {
          services.AddMvc()
                      .AddJsonOptions(options =>
                      {
                          options.SerializerSettings.ContractResolver =
                              new CamelCasePropertyNamesContractResolver();
                      });
      }
    

    【讨论】:

    • 这实际上是现在的默认行为(不幸的是),他想要默认,原样,属性名称没有变化,大小写
    • @Omu 这些实际上并不相同(无论如何在 .net core 2.0 中)。 DefaultContractResolver 将接受 CamelCase 并返回 TitleCase,CamelCasePropertyNamesContractResolver 接受并返回 CamelCase。
    • @Omu 已将 .net core 1.x 更改为 2.0 吗?
    【解决方案3】:

    您也可以在单个序列化程序级别执行此操作,而不是在全局级别。

    例如,要在控制器操作方法上将对象作为 JSON 返回,您可以这样做:

    var jsonSerializerSettings = new JsonSerializerSettings { ContractResolver = new DefaultContractResolver() };
    
    return new JsonResult(myObject, jsonSerializerSettings);
    

    生成的 JSON 字符串将采用预期的 PascalCase 以匹配 .NET 类/属性名称

    【讨论】:

      猜你喜欢
      • 2015-08-17
      • 2016-08-04
      • 2017-10-28
      • 1970-01-01
      • 2018-05-23
      • 2018-11-30
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      相关资源
      最近更新 更多