C# 如何使用 System.Text.Json 启用不区分大小写的属性名称

本文将介绍如何使用 System.Text.Json 命名空间启用不区分大小写的属性名称匹配。

不区分大小写的属性匹配

默认情况下,反序列化会查找 JSON 与目标对象属性之间区分大小写的属性名称匹配。 若要更改该行为,请将 JsonSerializerOptions.PropertyNameCaseInsensitive 设置为 true

备注

Web 默认值为不区分大小写。

C#复制

复制代码
var options = new JsonSerializerOptions
{
    PropertyNameCaseInsensitive = true
};
var weatherForecast = JsonSerializer.Deserialize<WeatherForecast>(jsonString, options);

下面是具有 camel 大小写属性名称的示例 JSON。 它可以反序列化为具有帕斯卡拼写法属性名称的以下类型。

JSON复制

复制代码
{
  "date": "2019-08-01T00:00:00-07:00",
  "temperatureCelsius": 25,
  "summary": "Hot",
}

C#复制

复制代码
public class WeatherForecast
{
    public DateTimeOffset Date { get; set; }
    public int TemperatureCelsius { get; set; }
    public string? Summary { get; set; }
}
相关推荐
_Kayo_3 分钟前
React上绑定全局方法
前端·javascript·react.js
阿蒙Amon9 分钟前
C#每日面试题-属性和特性的区别
java·面试·c#
懒惰蜗牛10 分钟前
Day66 | 深入理解Java反射前,先搞清楚类加载机制
java·开发语言·jvm·链接·类加载机制·初始化
愈努力俞幸运15 分钟前
chrome 扩展(插件)开发入门教程
前端·chrome
练习前端两年半32 分钟前
【Vue3 高级技巧】函数重载+Watch:打造类型安全的通用事件监听 Hook
前端·javascript·vue.js
赵庆明老师41 分钟前
VS2026扩展插件Visual Commander
java·开发语言
一只小鸟儿43 分钟前
门户短信发送验证码及验证功能
前端·javascript·jquery
额呃呃1 小时前
信号量唤醒线程的实际机制
java·开发语言·jvm
elangyipi1231 小时前
pnpm :下一代包管理工具的原理与实践
前端·npm
程序员阿鹏1 小时前
怎么理解削峰填谷?
java·开发语言·数据结构·spring·zookeeper·rabbitmq·rab