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; }
}
相关推荐
原神启动14 分钟前
K8S(五)—— YAML文件解析
java·容器·kubernetes
多看书少吃饭6 分钟前
Vite开发环境按需编译是怎么实现的
前端
周末吃鱼10 分钟前
Lambda作用域
java·开发语言
Wang153013 分钟前
Java异常处理
java·计算机网络
ybb_ymm14 分钟前
@Async修饰不生效
java·前端·数据库
Sapphire~17 分钟前
Vue3-03 熟悉src文件夹及Vue文件格式
前端·javascript·vue.js
ID_1800790547319 分钟前
闲鱼商品详情API接口基础架构解析
json
快乐星球37222 分钟前
鸿蒙5、6用户h5页面使用schemeURL跳转小程序失败
前端
nice_lcj52025 分钟前
数据结构之堆:从概念到应用全解析(附TOP-K经典问题)
java·数据结构·算法
无言(* ̄(エ) ̄)29 分钟前
进程---Linux/C语言
java·开发语言·算法