美文网首页
.netcore 3.0 接口返回 json 使用 Pascal

.netcore 3.0 接口返回 json 使用 Pascal

作者: Munan_ | 来源:发表于2019-10-20 23:10 被阅读0次

    在 asp dotnet core 3.0 默认的 webapi 返回接口都是返回 json 格式,同时这个 json 格式使用的是 CamelCase 属性名风格。如果想要兼容之前的格式,让 webapi 返回的 json 的属性名使用 PascalCase 格式,那么请看本文

    默认的 ASP.NET Core 3.0 的 WebAPI 的 json 返回值的属性使用首字符小写的 CamelCase 属性名风格,可以通过在 ConfigureServices 方法配置让返回值属性使用其他风格

    最简单的方法是设置 PropertyNamingPolicy 属性,请看代码

    services.AddControllers()
      .AddJsonOptions(options => options.JsonSerializerOptions.PropertyNamingPolicy = null);
    

    另一个是通过 NewtonsoftJson 设置

    首先安装 Microsoft.AspNetCore.Mvc.NewtonsoftJson

    安装之后可以在 Startup.cs 文件里面的 ConfigureServices 方法添加设置

    public void ConfigureServices(IServiceCollection services)
    {
      services.AddControllers()
        .AddNewtonsoftJson(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver() { NamingStrategy = new DefaultNamingStrategy() });
    }
    

    这样默认的 json 返回值属性使用首字符大写的 PascalCase 属性名风格

    使用 DefaultContractResolver 就是 PascalCase 风格

    使用 CamelCasePropertyNamesContractResolver 就是 CamelCase 风格

    注意,在一些版本,可以是 AddMvc 方法,请看下面

    services.AddMvc()
        .AddNewtonsoftJson(
          options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());
    

    Migrate from ASP.NET Core 2.2 to 3.0 Preview

    Serializing a PascalCase Newtonsoft.Json JObject to camelCase


    本文会经常更新,请阅读原文 ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

    如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者前往 CSDN 关注我的主页

    本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系

    相关文章

      网友评论

          本文标题:.netcore 3.0 接口返回 json 使用 Pascal

          本文链接:https://www.haomeiwen.com/subject/ykhzmctx.html