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; }
}
相关推荐
CAD老兵8 小时前
一张 HTML 走天下:CAD-Viewer 首创的「离线 CAD 看图」
前端·javascript·github
红石程序员8 小时前
破解MyEclipse
java·ide·myeclipse
程序员榴莲8 小时前
Python 中的 @property:像访问属性一样调用方法
开发语言·前端·python
yingyima8 小时前
Linux定时任务:crontab vs systemd timer,到底谁更适合你的业务?
前端
信码由缰8 小时前
Maven 4 核心亮点
java
玛卡巴卡ldf8 小时前
【LeetCode 手撕算法】(多维动态规划)不同路径、最小路径和、最长回文子串、最长公共子序列、编辑距离
java·数据结构·算法·leetcode·动态规划·力扣
春天的菠菜8 小时前
【私服】一步部署 Docker 私服
java·docker·容器
有味道的男人9 小时前
1688 跨境 API:多语言、跨境代采、独立站商品同步方案
java·服务器·前端
兩尛9 小时前
C++多线程,并发
java·开发语言
索西引擎9 小时前
【实战】Changesets:Monorepo 版本管理与变更日志的实践
前端