【问题标题】:How to set JsonSerializer default settings globally如何全局设置 JsonSerializer 默认设置
【发布时间】:2019-10-14 06:17:56
【问题描述】:

对于System.Text.Json.JsonSerializer,我必须在每次序列化或反序列化时设置选项,或者必须在对象的每个属性上设置属性,因为缺少设置/更改默认设置的方法。至少我找不到。

JsonSerializer.Deserialize<TypeListDTO>(
    "{\"listNo\":33}", 
    new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase});

有没有这样的方法?如果没有,是否有可用的解决方法?

编辑:我正在使用带有端点路由的 .Net Core 3。但很可能根本不使用它。

【问题讨论】:

    标签: jsonserializer asp.net-core-3.0


    【解决方案1】:

    用 Startup.ConfigureServices 中的 AddJsonOptions(Action) 试试:

    services.AddMvc()
      .AddJsonOptions( options =>
      {
        options.SerializerSettings.Formatting = Formatting.Indented;
        options.SerializerSettings.TypeNameHandling = TypeNameHandling.Objects;
        options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
      });
    

    【讨论】:

    • 那是MVC提供的功能,不是吗?如果我不使用 MVC 怎么办?有没有其他使用方法?
    • @Abhi 是的,它是一个 MVC 函数,但您不必强制制作 MVC,您可以在普通 WebAPI 项目中使用它
    猜你喜欢
    • 2018-05-07
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    相关资源
    最近更新 更多