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; }
}
相关推荐
NE_STOP2 小时前
Docker--Docker Swarm集群
java
小蜜蜂dry2 小时前
nestjs实战-权限二:角色模块
前端·后端·nestjs
AskHarries2 小时前
权限模型:Shell、Browser、文件读写的安全边界
服务器·前端·网络
小蜜蜂dry2 小时前
nestjs实战-权限一: 菜单模块
前端·后端·nestjs
两年半的个人练习生^_^2 小时前
JMM 进阶:彻底理解 CAS 实现原理
java·开发语言
用户5812441541572 小时前
GemDesign MCP协议详解:从原型到代码的完整技术链路
前端
wuminyu2 小时前
Java锁机制之park和unpark源码剖析
java·linux·c语言·jvm·c++
半个烧饼不加肉3 小时前
JS 底层探究-- 事件循环
开发语言·前端·javascript
goDeep3 小时前
useMemo 和 useCallback 的区别,我终于搞懂了
前端
小亮学前端3 小时前
在1Panel中部署Nuxt项目
前端·vue.js